在haskell中按字母或空格过滤

时间:2014-05-07 11:41:49

标签: haskell functional-programming

我尝试通过组合isLetter和isSpace条件来过滤除字母或空格以外的字符串中的所有内容,但这并不起作用。

normalise = filter (\x -> (Char.isLetter || Char.isSpace))

有没有办法过滤一种或另一种情况?

2 个答案:

答案 0 :(得分:8)

您的lambda中缺少函数应用程序。它应该是:

normalise = filter (\x -> Char.isLetter x || Char.isSpace x)

答案 1 :(得分:0)

你也可以使用这样的组合器来实现:

import Control.Arrow
normalise = filter ((Char.isLetter &&& Char.isSpace) >>> uncurry (||))