on master help sign in
Update the test for let- and bind-alternatives
b17c634Melvar Chen
test/sugar004/expected+1
@@ -1,3 +1,4 @@
1No arguments!
1No arguments!
2+Not an integer!
242
342
3Too many arguments!
4Too many arguments!
test/sugar004/run+1
@@ -1,6 +1,7 @@
1#!/usr/bin/env bash
1#!/usr/bin/env bash
2${IDRIS:-idris} $@ sugar004.idr -o sugar004
2${IDRIS:-idris} $@ sugar004.idr -o sugar004
3./sugar004
3./sugar004
4+./sugar004 foo
4./sugar004 42
5./sugar004 42
5./sugar004 42 100
6./sugar004 42 100
6rm -f sugar004 *.ibc
7rm -f sugar004 *.ibc
test/sugar004/sugar004.idr+12−1
@@ -1,5 +1,6 @@
1module Main
1module Main
2
2
3+import Data.String
3import System
4import System
4
5
5total
6total
@@ -9,7 +10,8 @@ foo x = let Just x' = x | Nothing => 100 in x'
9main : IO ()
10main : IO ()
10main = do [p, a] <- getArgs | [p] => putStrLn "No arguments!"
11main = do [p, a] <- getArgs | [p] => putStrLn "No arguments!"
11 | (x :: y :: _) => putStrLn "Too many arguments!"
12 | (x :: y :: _) => putStrLn "Too many arguments!"
13+ let Just a' = parseInteger {a = Int} a | Nothing => putStrLn "Not an integer!"
12− printLn (foo (Just (cast a)))
14+ printLn (foo (Just a'))
13
15
14{-
16{-
15
17
@@ -31,6 +33,15 @@ do x <- val
31 pat => p
33 pat => p
32 <alternatives>
34 <alternatives>
33
35
36+do let pat = val | <alternatives>
37+ p
38+
39+...becomes...
40+
41+do case val of
42+ pat => p
43+ <alternatives>
44+
34-}
45-}
35
46
36
47