diff 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
line wrap: on
line diff
--- a/tests/jscomp.ur	Tue Sep 22 13:41:23 2009 -0400
+++ b/tests/jscomp.ur	Tue Sep 22 14:15:29 2009 -0400
@@ -1,6 +1,11 @@
 fun fst [a] [b] (x : a) (y : b) = x
 fun snd [a] [b] (x : a) (y : b) = y
 
+fun fact n =
+    case n of
+        0 => 1
+      | _ => n * fact (n - 1)
+
 fun main () =
     s <- source "";
     s' <- source "";
@@ -21,7 +26,11 @@
       <button value="-" onclick={s <- get s; alert (show (-(readError s : int)))}/>
       <button value="+1" onclick={s <- get s; alert (show (readError s + 1))}/>
       <button value="*3" onclick={s <- get s; alert (show ((readError s) * 3))}/>
-      <button value="f" onclick={s <- get s; f <- get f; alert (show (f (readError s)))}/><br/><br/>
+      <button value="!" onclick={s <- get s; alert (show (fact (readError s)))}/>
+      <button value="f" onclick={s <- get s; f <- get f; alert (show (f (readError s)))}/>
+      <button value="+1P" onclick={s <- get s; case read s of
+                                                   None => alert "Nada!"
+                                                 | Some (n : int) => alert (show (n + 1))}/>
 
       <button value="f2" onclick={s <- get s; s' <- get s'; f2 <- get f2; alert (f2 s s')}/><br/><br/>