Mercurial > urweb
view demo/nested.ur @ 690:01b6f2ee2ef0
Redo signal implementation to avoid memory leaks
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 02 Apr 2009 15:12:06 -0400 |
parents | d4a81273d4b1 |
children |
line wrap: on
line source
fun pageA () = return <xml> <head> <title>A</title> </head> <body> <form> <table> <tr> <td>Forename:</td> <td><textbox{#Forename}/></td> </tr> <tr> <td>Enter a Surname?</td> <td><checkbox{#EnterSurname}/></td> </tr> </table> <submit action={fromA} /> </form> </body> </xml> and fromA r = let val forename = r.Forename fun pageB () = return <xml> <head> <title>B</title> </head> <body> <form> Surname: <textbox{#Surname}/> <submit action={pageC'} /> </form> <a link={pageA ()}>Previous</a> </body> </xml> and pageC' r = pageC (Some r.Surname) and pageC surname = return <xml> <head> <title>C</title> </head> <body> <p>Hello {[forename]}{case surname of None => <xml/> | Some s => <xml> {[s]}</xml>}</p> {case surname of None => <xml><a link={pageA ()}>Previous</a></xml> | Some _ => <xml><a link={pageB ()}>Previous</a></xml>} </body> </xml> in if r.EnterSurname then pageB () else pageC None end val main = pageA