diff tests/rpcDD.ur @ 640:63b0bcacd535

RPC returning a default datatype
author Adam Chlipala <adamc@hcoop.net>
date Sun, 08 Mar 2009 13:28:21 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/rpcDD.ur	Sun Mar 08 13:28:21 2009 -0400
@@ -0,0 +1,26 @@
+datatype list t = Nil | OtherNil | Cons of t * list t
+
+table t : {A : int}
+
+fun main () : transaction page =
+    let
+        fun rows () =
+            query (SELECT * FROM t)
+            (fn r ls => return (Cons (r.T.A, ls)))
+            Nil
+
+        fun show ls =
+            case ls of
+                Nil => <xml/>
+              | OtherNil => <xml>That's impossible!</xml>
+              | Cons (x, ls') => <xml>{[x]}<br/>{show ls'}</xml>
+    in
+        s <- source Nil;
+        return <xml><body>
+          <button value="Get It On!"
+                  onclick={ls <- rows ();
+                           set s ls}/><br/>
+          <br/>
+          Current: <dyn signal={ls <- signal s; return (show ls)}/>
+        </body></xml>
+    end