Mercurial > urweb
annotate tests/rpcDD.ur @ 1107:52571ca9b777
Eta-expand bodies of transaction functions in Monoization, to enable later optimization
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 31 Dec 2009 18:07:53 -0500 |
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 |