gpt4 book ai didi

haskell - 如何在haskell中添加两个列表?

转载 作者:行者123 更新时间:2023-12-03 14:39:12 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is an idiomatic way to add lists in Haskell?

(3 个回答)


8年前关闭。




例如,如何将 [1,2,3] 添加到 [5,4,6] 以返回 [6,6,8]
这是我到目前为止所拥有的:

func1 :: [Int]->[Int]->[Int]
func1 x y = [a+b|a<-x,b<-y]

我应该尝试删除我不想要的元素还是有更简单的方法来做到这一点?

最佳答案

您正在寻找 zipWith .特别是 func1 x y = zipWith (+) x y .你也可以“eta reduce”来删除那些额外的参数:func1 = zipWith (+) .这是我能想到的最有效的形式。

您当前的方法不起作用,因为 [a+b | a <- x, b <- y]形成两个嵌套循环,一个在 x 上es 和一个里面的 y s。这是列表推导的本质,它基于 Set Builder Notation .一种读法是“对于 x 中的每个 a,y 中的每个 b,给我 (a + b)”,而我们实际上想要运行 x。和 y一起。

关于haskell - 如何在haskell中添加两个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19405778/

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