-
LambdaCase -
- Since:
-
7.6.1
- Status:
-
Included in
GHC2024
Разрешает использование синтаксиса lambda-case.
Расширение LambdaCase позволяет использовать выражения вида
\case { p1 -> e1; ...; pN -> eN }
что эквивалентно
\freshName -> case freshName of { p1 -> e1; ...; pN -> eN }
С GHC 9.4.1 оно также допускает выражения с несколькими scrutinees (см. предложение GHC #302) вида
\cases { p11 ... pM1 -> e1; ...; p1N ... pMN -> eN }
что эквивалентно функции, определенной как
f p11 ... pM1 = e1 ... f p1N ... pMN = eN
Обратите внимание, что как \case , так и \cases начинаются с отступа, поэтому вы можете написать
\case p1 -> e1 ... pN -> eN
Кроме того, начиная с GHC 9.0.1, сочетание расширения LambdaCase с Arrows позволяет использовать синтаксис \case (а с GHC 9.4.1 \cases) как команду в записи proc:
proc x -> (f -< x) `catchA` \case p1 -> cmd1 ... pN -> cmdN