我正在从 learnyouahaskell.com 学习 Haskell,有一个这样的例子:
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 的功能,或者是我缺少的功能?
不要打破->
Just do:
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)
or
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)