gpt4 book ai didi

list - clojure map 功能的奇怪之处

转载 作者:行者123 更新时间:2023-12-04 02:54:09 25 4
gpt4 key购买 nike

关于 clojure 中 map 的第一个奇怪的事情是在以下代码段中:

(apply map list '((1 a) (2 b) (3 c)))

结果令我惊讶:
((1 2 3) (a b c))

任何人都可以解释它是如何工作的?

最佳答案

(apply f x '(y z))相当于 (f x y z) ,所以你的代码等价于 (map list '(1 a) '(2 b) '(3 c)) .

当使用多个列表调用时,map并行迭代列表并使用每个元素的每个列表中的一个元素调用给定函数(即结果列表的第一个元素是调用函数的结果,每个列表的第一个元素作为其参数,第二个是第二个元素的结果等)。

所以(map list '(1 a) '(2 b) '(3 c))第一个电话list使用列表的第一个元素(即数字)作为参数,然后使用第二个元素(字母)。所以你得到 ((list 1 2 3) (list 'a 'b 'c)) .

关于list - clojure map 功能的奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5369110/

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