annotate tests/jsinj.ur @ 594:55829473f6a7

Injected an option
author Adam Chlipala <adamc@hcoop.net>
date Fri, 02 Jan 2009 13:03:22 -0500
parents f277f5faebcd
children 02c8ab9f3e8b
rev   line source
adamc@590 1 fun getOpt (t ::: Type) (o : option t) (v : t) : t =
adamc@590 2 case o of
adamc@590 3 None => v
adamc@590 4 | Some x => x
adamc@590 5
adamc@591 6 cookie int : int
adamc@591 7 cookie float : float
adamc@592 8 cookie string : string
adamc@592 9 cookie bool : bool
adamc@593 10 cookie pair : int * float
adamc@594 11 cookie option : option int
adamc@591 12
adamc@590 13 fun main () : transaction page =
adamc@590 14 n <- getCookie int;
adamc@591 15 n <- return (getOpt n 7);
adamc@591 16 sn <- source 6;
adamc@591 17
adamc@591 18 f <- getCookie float;
adamc@591 19 f <- return (getOpt f 1.23);
adamc@591 20 sf <- source 4.56;
adamc@591 21
adamc@592 22 s <- getCookie string;
adamc@592 23 s <- return (getOpt s "Hi");
adamc@592 24 ss <- source "Bye";
adamc@592 25
adamc@592 26 b <- getCookie bool;
adamc@592 27 b <- return (getOpt b True);
adamc@592 28 sb <- source False;
adamc@592 29
adamc@593 30 p <- getCookie pair;
adamc@593 31 p <- return (getOpt p (1, 2.3));
adamc@593 32 sp <- source (4, 5.6);
adamc@593 33
adamc@594 34 o <- getCookie option;
adamc@594 35 o <- return (getOpt o (Some 1));
adamc@594 36 op <- source None;
adamc@594 37
adamc@590 38 return <xml><body>
adamc@590 39 <dyn signal={n <- signal sn; return <xml>{[n]}</xml>}/>
adamc@591 40 <a onclick={set sn n}>CHANGE</a><br/>
adamc@591 41
adamc@591 42 <dyn signal={f <- signal sf; return <xml>{[f]}</xml>}/>
adamc@591 43 <a onclick={set sf f}>CHANGE</a><br/>
adamc@592 44
adamc@592 45 <dyn signal={s <- signal ss; return <xml>{[s]}</xml>}/>
adamc@592 46 <a onclick={set ss s}>CHANGE</a><br/>
adamc@592 47
adamc@592 48 <dyn signal={b <- signal sb; return <xml>{[b]}</xml>}/>
adamc@592 49 <a onclick={set sb b}>CHANGE</a><br/>
adamc@593 50
adamc@593 51 <dyn signal={p <- signal sp; return <xml>{[p.1]}, {[p.2]}</xml>}/>
adamc@593 52 <a onclick={set sp p}>CHANGE</a><br/>
adamc@594 53
adamc@594 54 <dyn signal={o <- signal op; case o of
adamc@594 55 None => return <xml>None</xml>
adamc@594 56 | Some x => return <xml>{[x]}</xml>}/>
adamc@594 57 <a onclick={set op o}>CHANGE</a><br/>
adamc@590 58 </body></xml>