这很愚蠢,但我甚至无法解决空格和制表符的问题.有时我认为问题不在我身上,而是在Haskell中.为什么Python没有相同的问题?
我的代码是:
lookups :: (Eq a) => a -> [(a,b)] -> [b]
lookups x ys = do y <- ys
if fst y == x then return (snd y)
Run Code Online (Sandbox Code Playgroud)
我有一个错误:parse error (possibly incorrect indentation or mismatched brackets).我的代码只使用空格.
你需要一个else在你的if-then.所有if在Haskell小号必须then和else,否则表达就不会总是返回一个值.在Haskell中,所有表达式都必须返回一个值,所以if-then没有a else不是表达式,因此解析错误.如果出现以下情况,您需要决定做什么fst y /= x:
lookups x ys = do y <- ys
if fst y == x
then return (snd y)
else ???
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |