gpt4 book ai didi

Haskell 矩阵加法/减法

转载 作者:行者123 更新时间:2023-12-02 07:43:25 26 4
gpt4 key购买 nike

这就是我在 Haskell 中进行矩阵加法的内容


> add :: (Num a) => [[a]] -> [[a]] -> [[a]]
> add [] [] = []
> add (x:xs) (y:ys) = zipWith (+) x y : add xs ys

添加 [[1,2], [3,4]] [[5,6], [7,8]] 给我 [[6,8],[10,12]]

但是,我正在尝试用一行来代替


> add :: (Num a) => [[a]] -> [[a]] -> [[a]]
> add = map ((zipWith (+))

为什么 map 功能不起作用?

最佳答案

map 函数在这里不起作用,因为您要迭代两个 列表而不是一个。要并行迭代两个列表,您可以使用 zipWith,就像您已经对内部循环所做的那样。

Prelude> let add = zipWith (zipWith (+))
Prelude> add [[1, 2], [3, 4]] [[5, 6], [7, 8]]
[[6,8],[10,12]]

关于Haskell 矩阵加法/减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655794/

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