diff options
author | Adam Chlipala <adamc@hcoop.net> | 2009-03-10 17:29:03 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2009-03-10 17:29:03 -0400 |
commit | 90d6483a54745b4b647b429c018dd49d0797459c (patch) | |
tree | ae4fb9cd2b1daf1601ab9ad335fbb9574d372f8f /demo/noisy.ur | |
parent | 4bc363c5ec2724b9d310e17181ca87517c98aa68 (diff) |
Noisy demo
Diffstat (limited to 'demo/noisy.ur')
-rw-r--r-- | demo/noisy.ur | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/demo/noisy.ur b/demo/noisy.ur new file mode 100644 index 00000000..118af737 --- /dev/null +++ b/demo/noisy.ur @@ -0,0 +1,42 @@ +datatype list t = Nil | Cons of t * list t + +table t : { Id : int, A : string } + +fun add id s = + dml (INSERT INTO t (Id, A) VALUES ({[id]}, {[s]})) + +fun del id = + dml (DELETE FROM t WHERE t.Id = {[id]}) + +fun lookup id = + ro <- oneOrNoRows (SELECT t.A FROM t WHERE t.Id = {[id]}); + case ro of + None => return None + | Some r => return (Some r.T.A) + +fun check ls = + case ls of + Nil => return () + | Cons (id, ls') => + ao <- lookup id; + alert (case ao of + None => "Nada" + | Some a => a); + check ls' + +fun main () = + idAdd <- source ""; + aAdd <- source ""; + + idDel <- source ""; + + return <xml><body> + <button value="Check values of 1, 2, and 3" onclick={check (Cons (1, Cons (2, Cons (3, Nil))))}/><br/> + <br/> + <button value="Add" onclick={id <- get idAdd; a <- get aAdd; add (readError id) a}/> + <ctextbox source={idAdd}/> + <ctextbox source={aAdd}/><br/> + <br/> + <button value="Delete" onclick={id <- get idDel; del (readError id)}/> + <ctextbox source={idDel}/> + </body></xml> |