Haskell 多行 Lambda
Haskell Multi-line Lambdas
我正在从 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 的功能,或者这是我缺少的东西?
不要破坏->
就这样:
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)
或
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)
我正在从 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 的功能,或者这是我缺少的东西?
不要破坏->
就这样:
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)
或
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)