mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-21 02:31:50 +03:00
21c6f4fb79
* [ breaking ] remove parsing of dangling binders It used to be the case that ``` ID : Type -> Type ID a = a test : ID (a : Type) -> a -> a test = \ a, x => x ``` and ``` head : List $ a -> Maybe a head [] = Nothing head (x :: _) = Just x ``` were accepted but these are now rejected because: * `ID (a : Type) -> a -> a` is parsed as `(ID (a : Type)) -> a -> a` * `List $ a -> Maybe a` is parsed as `List (a -> Maybe a)` Similarly if you want to use a lambda / rewrite / let expression as part of the last argument of an application, the use of `$` or parens is now mandatory. This should hopefully allow us to make progress on #1703
16 lines
290 B
Idris
16 lines
290 B
Idris
f : (Int -> Bool) -> Int
|
|
f p = case (p 0, p 1) of
|
|
(False, False) => 0
|
|
(False, True) => 1
|
|
(True , False) => 2
|
|
(True , True) => 4
|
|
|
|
il : Int
|
|
il = f $ \x => x > 0
|
|
|
|
lc : Int
|
|
lc = f $ \case 0 => True ; _ => False
|
|
|
|
ilc : Int
|
|
ilc = f (\case 0 => True; _ => False)
|