简单clojure:为什么不同表达式的输出是相同的?

简单clojure:为什么不同表达式的输出是相同的?,clojure,Clojure,输出:(9) 输出:(9) 为什么它们的输出相同#(-9%)和#(+9%)是不同的。您正在将每个数字乘以零: (map (comp #(+ 9 %) *) [2 4 6] [0 0 0]) 那么剩下的是什么呢:9-0==9+0 (map * [2 4 6] [0 0 0]) ;; -> (0 0 0) 。。。可以重构为 (map (comp f g) s t) 在这种情况下, (map f (map g s t)) 。。。变成 (map (comp #(- 9 %) *) [2

输出:
(9)

输出:
(9)


为什么它们的输出相同<代码>#(-9%)和
#(+9%)
是不同的。

您正在将每个数字乘以零:

(map (comp #(+ 9  %) *) [2 4 6] [0 0 0])
那么剩下的是什么呢:
9-0==9+0

(map * [2 4 6] [0 0 0])
;; -> (0 0 0)
。。。可以重构为

(map (comp f g) s t)
在这种情况下,

(map f (map g s t))
。。。变成

(map (comp #(- 9  %) *) [2 4 6] [0 0 0])
。。。减少到

(map #(- 9  %) (map * [2 4 6] [0 0 0]))
因此,将
-
更改为
+
没有任何区别


以上基本上是对这一问题的解释

首先,(-9 0)和(+9 0)的输出是相同的。
(map #(- 9  %) (map * [2 4 6] [0 0 0]))
(map #(- 9  %) '(0 0 0))