解析错误(可能是错误的缩进或括号不匹配) - Haskell

时间:2015-04-10 15:54:55

标签: haskell

很傻,但我甚至无法用空格和标签解决问题。有时我认为问题不在我身上,而是在Haskell中。为什么Python没有同样的问题?

我的代码是:

lookups :: (Eq a) => a -> [(a,b)] -> [b]
lookups x ys = do y <- ys
                  if fst y == x then return (snd y)

我有一个错误:parse error (possibly incorrect indentation or mismatched brackets)。我的代码只使用空格。

1 个答案:

答案 0 :(得分:6)

您的else需要if-then。 Haskell中的所有if必须具有thenelse,否则表达式不会始终返回值。在Haskell中,所有表达式都必须返回一个值,因此没有if-then的{​​{1}}不是表达式,因此解析错误。如果else

,您需要决定该怎么做
fst y /= x