comparison demo/listFun.ur @ 501:7ef4b2911b09

Some demo improvements
author Adam Chlipala <adamc@hcoop.net>
date Thu, 20 Nov 2008 11:34:36 -0500
parents e756d3a47726
children
comparison
equal deleted inserted replaced
500:581554f8e642 501:7ef4b2911b09
8 fun toXml (ls : list M.t) = 8 fun toXml (ls : list M.t) =
9 case ls of 9 case ls of
10 Nil => <xml>[]</xml> 10 Nil => <xml>[]</xml>
11 | Cons (x, ls') => <xml>{[M.toString x]} :: {toXml ls'}</xml> 11 | Cons (x, ls') => <xml>{[M.toString x]} :: {toXml ls'}</xml>
12 12
13 fun console (ls : list M.t) = return <xml><body> 13 fun console (ls : list M.t) =
14 Current list: {toXml ls}<br/> 14 let
15 Reversed list: {toXml (rev ls)}<br/> 15 fun cons (r : {X : string}) =
16 Length: {[length ls]}<br/> 16 case M.fromString r.X of
17 <br/> 17 None => return <xml><body>Invalid string!</body></xml>
18 | Some v => console (Cons (v, ls))
19 in
20 return <xml><body>
21 Current list: {toXml ls}<br/>
22 Reversed list: {toXml (rev ls)}<br/>
23 Length: {[length ls]}<br/>
24 <br/>
18 25
19 <form> 26 <form>
20 Add element: <textbox{#X}/> <submit action={cons ls}/> 27 Add element: <textbox{#X}/> <submit action={cons}/>
21 </form> 28 </form>
22 </body></xml> 29 </body></xml>
23 30 end
24 and cons (ls : list M.t) (r : {X : string}) =
25 case M.fromString r.X of
26 None => return <xml><body>Invalid string!</body></xml>
27 | Some v => console (Cons (v, ls))
28 31
29 fun main () = console Nil 32 fun main () = console Nil
30 end 33 end