diff tests/dlist2.ur @ 605:1a9171e31fd1

dlist2 working swimmingly
author Adam Chlipala <adamc@hcoop.net>
date Sat, 17 Jan 2009 09:55:12 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/dlist2.ur	Sat Jan 17 09:55:12 2009 -0500
@@ -0,0 +1,25 @@
+datatype dlist = Nil | Cons of string * source dlist
+
+fun delist dl =
+    case dl of
+        Nil => <xml>[]</xml>
+      | Cons (x, s) => <xml>{[x]} <ctextbox/> :: {delistSource s}</xml>
+
+and delistSource s = <xml><dyn signal={dl <- signal s; return (delist dl)}/></xml>
+
+fun main () : transaction page =
+    tail0 <- source Nil;
+    tail <- source tail0;
+    tb <- source "";
+    return <xml><body>
+      {delist (Cons ("ROOT", tail0))}
+      <br/>
+      <ctextbox source={tb}/>
+      <button value="Add" onclick={hd <- get tb;
+                                   tl <- source Nil;
+                                   old <- get tail;
+
+                                   set old (Cons (hd, tl));
+                                   set tail tl}/>
+      <button value="Reset" onclick={set tail0 Nil; set tail tail0}/>
+    </body></xml>