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