gpt4 book ai didi

matrix - 在 Racket 中寻找 'map' 的澄清

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

stackoverflow 的新手和 Racket 的新手。我一直在使用以下文档学习 Racket :https://docs.racket-lang.org/reference/pairs.html
这是我对 map 的理解:

(map (lambda (number) (+ 1 number))'(1 2 3 4))
这分配了 '(1 2 3 4)到变量 number ,然后 map 执行 (+ 1 '(1 2 3 4)) .
但是当我看到以下内容时:
(define (matrix_addition matrix_a matrix_b)
(map (lambda (x y) (map + x y)) matrix_a matrix_b))
我很迷茫。我假设我们正在分配两个变量 xy ,然后执行 (map + x y) ,但我不明白是什么或如何 (map + x y)作品。
我遇到的另一个问题是
(define (matrix_transpose matrix_a)
(apply map (lambda x x) matrix_a))
什么 (lambda x x)到底怎么办?
非常感谢您的澄清。正如你所看到的,我一直在按照我的一个 friend 的建议进行矩阵运算。

最佳答案

这是一种思考方式 map :

(map f (list 1 2 3)) computes (list (f 1) (f 2) (f 3)).
(map f (list 1 2 3) (list 11 22 33)) computes (list (f 1 11) (f 2 22) (f 3 33)).
所以你的例子 +变成:
(map + (list 1 2 3) (list 11 22 33)) computes (list (+ 1 11) (+ 2 22) (+ 3 33))
这是 (list 12 24 36) .
一开始写得更清楚
(define f (lambda (x y) (+ x y)))
(map f (list 1 2 3) (list 11 22 33)))
但是当你习惯了 maplambda ,简写
(map (lambda (x y) (+ x y)) (list 1 2 3) (list 11 22 33)))
很有用。

关于matrix - 在 Racket 中寻找 'map' 的澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66149243/

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