如果我尝试运行此功能:
function :: Int -> Int -> Int
function =
\case 5 -> 1
我收到此错误消息:
parse error (possibly incorrect indentation or mismatched brackets)
Failed, modules loaded: none.
或者如果我实现这样的功能:
function :: Int -> Int -> Int
function = \case 5 -> 1
parse error on input ‘case’
Failed, modules loaded: none.
有人能告诉我为什么会收到此错误消息吗?
答案 0 :(得分:4)
\case (...) -> (...)
语法需要语言扩展名LambdaCase
。
要在您的文件中设置此项,请使用标记-XLambdaCase
进行编译,或将其写在文件顶部:
{-# LANGUAGE LambdaCase #-}
请注意,非GHC编译器可能不支持此扩展。