1
我从learnyouahaskell.com学习Haskell和存在使得例如:哈斯克尔多行lambda表达式
search :: (Eq a) => [a] -> [a] -> Bool
search needle haystack =
let nlen = length needle
in foldl (\acc x -
> if take nlen x == needle then True else acc) False (tails haystack)
但是,当尝试这种代码GHC,它给了我
error: parse error on input ‘-’
但它的工作原理是这样的:
search :: (Eq a) => [a] -> [a] -> Bool
search needle haystack =
let nlen = length needle
in foldl (\acc x -> if take nlen x == needle then True else acc) False (tails haystack)
是否有Haskell的功能,允许多行lambda或是索姆我错过了什么?
你被允许多行lambda表达式。然而,你在最糟糕的地方分裂线路。 ' - >'很重要!保持这一点,它应该工作。 – pdexter
只是不要折断你的箭头 - 把它放在一起'\ acc x - >'并缩进下一行 – Carsten
你不能在单词或操作符中插入换行符。 – melpomene