我正在努力在 Haskell 中创建一个函数,该函数根据列表中前一个元素的条件过滤列表的数字。
Example
前一个数字是 2 的倍数
myFunction [1, 2, 5, 6, 3]
# expected output:
[5,3]
我知道如何申请filter
但到目前为止,我发现过滤器一次只接受一个参数。
我尝试过scanl1
, foldl1
, and map
但我是 Haskell 的新手,我还无法做到这一点;有什么线索吗?
Edit
它应该是:
myFunction [] = []
myFunction [x] = []
myFunction [x,y] = if (x `mod` 2) == 0 then [y] else []
myFunction (x:y:xs) = if (x `mod` 2) == 0
then y : (myFunction xs)
else myFunction (y:xs)
因为对于输入:
myFuntion [1, 2, 5, 6, 3]
正确的输出应该是:
[5,3]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)