summaryrefslogtreecommitdiff
path: root/tests/dlist2.ur
diff options
context:
space:
mode:
Diffstat (limited to 'tests/dlist2.ur')
-rw-r--r--tests/dlist2.ur25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/dlist2.ur b/tests/dlist2.ur
new file mode 100644
index 00000000..3d2c7105
--- /dev/null
+++ b/tests/dlist2.ur
@@ -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>