简单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))