Mercurial > urweb
annotate tests/jscomp.ur @ 974:b851675a2c3d
Compiled an 'option' pattern-match
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 22 Sep 2009 14:15:29 -0400 |
parents | e30c2409c9d0 |
children | 8fe576c0bee9 |
rev | line source |
---|---|
adamc@973 | 1 fun fst [a] [b] (x : a) (y : b) = x |
adamc@973 | 2 fun snd [a] [b] (x : a) (y : b) = y |
adamc@973 | 3 |
adamc@974 | 4 fun fact n = |
adamc@974 | 5 case n of |
adamc@974 | 6 0 => 1 |
adamc@974 | 7 | _ => n * fact (n - 1) |
adamc@974 | 8 |
adamc@971 | 9 fun main () = |
adamc@971 | 10 s <- source ""; |
adamc@973 | 11 s' <- source ""; |
adamc@973 | 12 f <- source (plus 1); |
adamc@973 | 13 f2 <- source fst; |
adamc@973 | 14 r <- source {A = "x", B = "y"}; |
adamc@971 | 15 |
adamc@971 | 16 return <xml><body> |
adamc@973 | 17 <ctextbox source={s}/> <ctextbox source={s'}/><br/><br/> |
adamc@972 | 18 |
adamc@972 | 19 Function: <button value="+1" onclick={set f (plus 1)}/> |
adamc@972 | 20 <button value="*3" onclick={set f (times 3)}/><br/><br/> |
adamc@971 | 21 |
adamc@973 | 22 Function2: <button value="Fst" onclick={set f2 fst}/> |
adamc@973 | 23 <button value="Snd" onclick={set f2 snd}/><br/><br/> |
adamc@973 | 24 |
adamc@971 | 25 <button value="Echo" onclick={s <- get s; alert s}/> |
adamc@973 | 26 <button value="-" onclick={s <- get s; alert (show (-(readError s : int)))}/> |
adamc@971 | 27 <button value="+1" onclick={s <- get s; alert (show (readError s + 1))}/> |
adamc@971 | 28 <button value="*3" onclick={s <- get s; alert (show ((readError s) * 3))}/> |
adamc@974 | 29 <button value="!" onclick={s <- get s; alert (show (fact (readError s)))}/> |
adamc@974 | 30 <button value="f" onclick={s <- get s; f <- get f; alert (show (f (readError s)))}/> |
adamc@974 | 31 <button value="+1P" onclick={s <- get s; case read s of |
adamc@974 | 32 None => alert "Nada!" |
adamc@974 | 33 | Some (n : int) => alert (show (n + 1))}/> |
adamc@973 | 34 |
adamc@973 | 35 <button value="f2" onclick={s <- get s; s' <- get s'; f2 <- get f2; alert (f2 s s')}/><br/><br/> |
adamc@973 | 36 |
adamc@973 | 37 <button value="A" onclick={r <- get r; alert r.A}/> |
adamc@973 | 38 <button value="B" onclick={r <- get r; alert r.B}/> |
adamc@971 | 39 </body></xml> |