annotate tests/stypes.ur @ 585:35471f067980

Reactive record pattern
author Adam Chlipala <adamc@hcoop.net>
date Thu, 01 Jan 2009 11:04:09 -0500
parents 101eb0058136
children 1c969230ee7f
rev   line source
adamc@582 1 fun main () : transaction page =
adamc@582 2 sInt <- source 0;
adamc@583 3 sFloat <- source 1.23;
adamc@583 4 sBoth <- source (7, 42.1);
adamc@583 5
adamc@583 6 sOpt <- source None;
adamc@583 7
adamc@582 8 return <xml><body>
adamc@583 9 <dyn signal={n <- signal sInt; return <xml>{[n + 3]}</xml>}/> <a onclick={set sInt 1}>Change</a><br/>
adamc@583 10
adamc@583 11 <dyn signal={n <- signal sFloat; return <xml>{[n + 1.0]}</xml>}/> <a onclick={set sFloat 4.56}>Change</a><br/>
adamc@583 12
adamc@585 13 <dyn signal={p <- signal sBoth; return <xml>{[p.1]}, {[p.2]}</xml>}/>;
adamc@585 14 <dyn signal={p <- signal sBoth; case p of
adamc@585 15 (7, _) => return <xml>Initial</xml>
adamc@585 16 | (fst, snd) => return <xml>{[fst]}, {[snd]}</xml>}/>
adamc@585 17 <a onclick={set sBoth (8, 100.001)}>Change</a><br/>
adamc@584 18
adamc@584 19 <dyn signal={o <- signal sOpt; case o of
adamc@584 20 None => return <xml>None</xml>
adamc@584 21 | Some n => return <xml>{[n]}</xml>}/>
adamc@584 22 <a onclick={set sOpt (Some 7)}>Change</a><br/>
adamc@582 23 </body></xml>