annotate tests/rpcDD.ur @ 1513:5616b2cbdcdb

Tutorial: hyperlinks for metaprogramming and row types
author Adam Chlipala <adam@chlipala.net>
date Wed, 20 Jul 2011 08:14:49 -0400
parents 63b0bcacd535
children
rev   line source
adamc@640 1 datatype list t = Nil | OtherNil | Cons of t * list t
adamc@640 2
adamc@640 3 table t : {A : int}
adamc@640 4
adamc@640 5 fun main () : transaction page =
adamc@640 6 let
adamc@640 7 fun rows () =
adamc@640 8 query (SELECT * FROM t)
adamc@640 9 (fn r ls => return (Cons (r.T.A, ls)))
adamc@640 10 Nil
adamc@640 11
adamc@640 12 fun show ls =
adamc@640 13 case ls of
adamc@640 14 Nil => <xml/>
adamc@640 15 | OtherNil => <xml>That's impossible!</xml>
adamc@640 16 | Cons (x, ls') => <xml>{[x]}<br/>{show ls'}</xml>
adamc@640 17 in
adamc@640 18 s <- source Nil;
adamc@640 19 return <xml><body>
adamc@640 20 <button value="Get It On!"
adamc@640 21 onclick={ls <- rows ();
adamc@640 22 set s ls}/><br/>
adamc@640 23 <br/>
adamc@640 24 Current: <dyn signal={ls <- signal s; return (show ls)}/>
adamc@640 25 </body></xml>
adamc@640 26 end