gpt4 book ai didi

list - 如何根据列表中的先前值过滤Haskell中的列表元素?

转载 作者:行者123 更新时间:2023-12-03 05:10:45 25 4
gpt4 key购买 nike

我正在努力在 Haskell 中创建一个函数,根据列表中前一个元素的条件过滤列表中的数字。

示例

前一个数字是 2 的倍数

myFunction [1, 2, 5, 6, 3]
# expected output:
[5,3]

我知道如何应用过滤器,但到目前为止我发现过滤器一次只接受一个参数。

我尝试过使用 scanl1foldl1map,但我是 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]

关于list - 如何根据列表中的先前值过滤Haskell中的列表元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58687161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com