【发布时间】:2018-06-08 19:41:14
【问题描述】:
在 Haskell 中,我如何实现一个函数 dup 复制列表中偶数位置 (0,2,4...) 上的所有元素
dup :: [a] -> [a]
dup [] = []
dup (x:xs) = x : x : dup xs
//but only on even index ??
调用示例:
dup [1,5,2,8,4] = [1,1,5,2,2,8,4,4]
【问题讨论】:
-
通过为
dup编写函数定义。你有什么尝试吗? -
@WillemVanOnsem 添加了我尝试过的内容
-
使用模式匹配,以便一次处理两个元素:
dup (x:y:xs) = x:x:y:dup xs。如果您认为x有一个偶数索引,那么y必须有一个奇数索引,剩下的就是其中包含零个或一个元素的列表的基本情况。
标签: haskell functional-programming