【发布时间】:2014-12-30 23:23:47
【问题描述】:
我是 Haskell 的新手,我想根据条件拆分列表,如果列表的元素是偶数还是奇数,使用 splitWhen 函数将第一个参数作为布尔条件。这个布尔条件是另一个名为 checkEven 的函数的返回。但是我怎样才能将元素传递给 checkEven 函数。这甚至可能吗?
checkEven n=(n mod 2==0)
splitList x= splitWhen (checkEven(<???>)) x
main =do
print (splitList [0,1,2,3,-1])
如果上述方法错误,请提出其他解决此问题的方法。但我也遇到了同样的问题。
提前致谢
【问题讨论】:
-
什么是
splitWhen? -
@Jubobs 它是与列表一起使用的内置函数。我在hackage.haskell.org/package/split-0.1.1/docs/… 找到了它
-
@Jubobs fpcomplete.com/hoogle?q=splitWhen&env=ghc-7.8-stable-14.09 FPComplete 的 hoogle 搜索的包比 haskellwiki 的要多。
splitWhen :: (a -> Bool) -> [a] -> [[a]]给splitWhen (<0) [1,3,-4,5,7,-9,0,2] == [[1,3],[5,7],[0,2]]
标签: haskell functional-programming