【发布时间】:2021-05-19 12:29:57
【问题描述】:
我有点难以准确解释标题的含义。我想在 Haskell 中创建一个函数,它接受两个列表并返回一个列表列表,其中每个列表是通过将第一个列表中的第 i 个元素替换为第二个列表中的第 i 个元素来获得的。例如,如果给定 [1,2,3] 和 [4,5,6],它应该返回 [[4,2,3],[1,5,3],[1,2,6]]。 我尝试使用这个递归函数,它只返回一个包含所有值的列表,然后我可以将这些值分解并变成一个列表列表,但它会在途中丢失一些元素。
replace' :: [a] -> [a] ->[a]
replace' _ [y] = [y]
replace' (x:xs) (y:ys) = y:xs ++ x: (replace' xs ys)
【问题讨论】:
-
我们可以为您编写它,但最重要的可能是您自己增强对情况的理解,以便解决方案变得清晰。问题越清楚,解决方案就越容易。 :)
标签: list function haskell list-comprehension