list - Haskell - 交替两个列表中的元素

标签 list haskell tuples alternating

我正在尝试编写一个 haskell 函数,该函数接受两个整数列表并生成一个列表,其中包含从两个列表中交替获取的元素。

我有这个功能:

blend xs ys

一个例子:

blend [1,2,3] [4,5,6]

应该返回

[1,4,2,5,3,6]

我的逻辑是将两个列表压缩在一起,生成备用元素对,然后以某种方式将它们从元组中删除。

它将它们从元组中删除,我不知道如何实现。

最佳答案

在递归下降期间交换参数怎么样?

blend (x:xs) ys = x:(blend ys xs)
blend _ _ = []

您甚至可以将这种方法推广到任意数量的列表(我将把这个留给您),或者如果另一个列表为空,则获取列表的剩余元素:

blend _ ys = ys

关于list - Haskell - 交替两个列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470606/

相关文章:

python 初始化 dict 列表可能只是复制引用

list - IcCube - 报告列表

list - 如何在 R 中处理分层数据结构中的数据?

haskell - `newtype` 上的模式匹配

haskell - 用于客户端-服务器一致性检查的数据类型的可序列化表示

python - 如何分配将元组抛出到数据帧的两个不同列的函数

list - Haskell 中的函数 snd 如何在过滤器中工作

haskell - 有 "parse error on input ‘->’ "的情况下

python - 将对象元组转换为字符串元组

python - 根据条件将数据帧转换为元组列表