我有以下功能:
ParesImpares:: [Integer] -> ([Integer],[Integer])
我必须从列表中取出偶数和奇数:
ParesImpares [3,2,4,5,7]
->([2,4],[3,5,7])
到目前为止,我的代码如下:
paresImpares :: [Integer] -> ([Integer],[Integer])
paresImpares [] = ([],[])
paresImpares [x]
| x `mod` 2 == 0 = ([x],[])
| otherwise = ([],[x])
我已经定义了一个基本案例,但事实是我不知道如何进行。我想到了类似的东西:
ParesImpares(x:xs) = ParesImpares [x]
但当然,它只评估列表的第一个元素。
有一个更直接的解决方案:
好吧,我找到了答案:
这工作完美
x
mod2
可以替换为even