comparison demo/more/versioned1.ur @ 995:166ea3944b91

Versioned1 demo working
author Adam Chlipala <adamc@hcoop.net>
date Tue, 06 Oct 2009 17:36:45 -0400
parents 10114d7b7477
children e6bc6bbd7a32
comparison
equal deleted inserted replaced
994:7932d577cf78 995:166ea3944b91
6 val data = {Nam = {Inj = _, 6 val data = {Nam = {Inj = _,
7 Eq = _}, 7 Eq = _},
8 ShoeSize = {Inj = _, 8 ShoeSize = {Inj = _,
9 Eq = _}} 9 Eq = _}}
10 end) 10 end)
11
12 fun retro vr =
13 ks <- keysAt vr;
14 ks <- List.mapM (fn r => fso <- archive vr r; return (r.Id, fso)) ks;
15
16 return <xml><body>
17 {List.mapX (fn (k, r) => <xml><li>
18 {[k]}: {case r of
19 None => <xml>Whoa!</xml>
20 | Some r => <xml>{[r.Nam]}, {[r.ShoeSize]}</xml>}
21 </li></xml>) ks}
22 </body></xml>
11 23
12 fun expandKey k = 24 fun expandKey k =
13 name <- source ""; 25 name <- source "";
14 shoeSize <- source ""; 26 shoeSize <- source "";
15 return {Key = k, Nam = name, ShoeSize = shoeSize} 27 return {Key = k, Nam = name, ShoeSize = shoeSize}
20 ks <- source ks0; 32 ks <- source ks0;
21 33
22 id <- source ""; 34 id <- source "";
23 name <- source ""; 35 name <- source "";
24 shoeSize <- source ""; 36 shoeSize <- source "";
37
38 times <- updateTimes;
25 39
26 return <xml><body> 40 return <xml><body>
27 <dyn signal={ks <- signal ks; 41 <dyn signal={ks <- signal ks;
28 return (List.mapX (fn kr => <xml><div> 42 return (List.mapX (fn kr => <xml><div>
29 {[kr.Key]}: 43 {[kr.Key]}:
57 71
58 cur <- get ks; 72 cur <- get ks;
59 kr <- expandKey (readError id); 73 kr <- expandKey (readError id);
60 set ks (kr :: cur)}/></th></tr> 74 set ks (kr :: cur)}/></th></tr>
61 </table> 75 </table>
76
77 <h2>Archive</h2>
78
79 {List.mapX (fn (vr, tm) => <xml><li><a link={retro vr}>{[tm]}</a></li></xml>) times}
62 </body></xml> 80 </body></xml>