annotate tests/dlist.ur @ 2204:01c8aceac480

Finishes initial prototype, caching parameterless pages with table-match-based invalidation. Still has problems parsing non-Postgres SQL dialects properly.
author Ziv Scully <ziv@mit.edu>
date Tue, 27 May 2014 21:14:13 -0400
parents 20c083327364
children
rev   line source
adamc@601 1 datatype dlist = Nil | Cons of string * source dlist
adamc@601 2
adamc@601 3 fun delist dl =
adamc@601 4 case dl of
adamc@601 5 Nil => <xml>[]</xml>
adamc@604 6 | Cons (x, s) => <xml>{[x]} :: ({delistSource s})</xml>
adamc@601 7
adamc@601 8 and delistSource s = <xml><dyn signal={dl <- signal s; return (delist dl)}/></xml>
adamc@601 9
adamc@601 10 fun main () : transaction page =
adamc@601 11 ns <- source Nil;
adamc@601 12 s <- source ns;
adamc@601 13 tb <- source "";
adamc@601 14 return <xml><body>
adamc@601 15 <dyn signal={s <- signal s; return (delistSource s)}/><br/>
adamc@601 16 <br/>
adamc@601 17 <ctextbox source={tb}/>
adamc@601 18 <button value="Add" onclick={hd <- get tb;
adamc@601 19 tl <- get s;
adamc@601 20 s' <- source (Cons (hd, tl));
adamc@601 21 set s s'}/>
adamc@603 22 <button value="Reset" onclick={set s ns}/>
adamc@601 23 </body></xml>