clojure中应用和不应用以及部分的区别是什么?
在这部法典中clojure中应用和不应用以及部分的区别是什么?,clojure,functional-programming,Clojure,Functional Programming,在这部法典中 user> (= (apply partial partial [+]) (partial partial +)) false user> user> (= (apply + []) (+)) true 两者的区别是什么 (应用部分[+]) 及 (部分+) ? 在这部法典中 user> (= (apply partial partial [+]) (partial partial +)) false user>
user> (= (apply partial partial [+])
(partial partial +))
false
user>
user> (= (apply + [])
(+))
true
两者的区别是什么
(应用部分[+])
及
(部分+)
?
在这部法典中
user> (= (apply partial partial [+])
(partial partial +))
false
user>
user> (= (apply + [])
(+))
true
那么为什么返回值不是false呢?因为
(apply + [])
;0
(+)
;0
。。。然后
(= (apply + []) (+))
;true
。。。此外 。。。因为带有一个参数的
partial
返回它
(partial +)
;#<core$_PLUS_ clojure.core$_PLUS_@5746e7cc>
+
;#<core$_PLUS_ clojure.core$_PLUS_@5746e7cc>
自
。。。然后
(= (apply + []) (+))
;true
。。。此外 。。。因为带有一个参数的
partial
返回它
(partial +)
;#<core$_PLUS_ clojure.core$_PLUS_@5746e7cc>
+
;#<core$_PLUS_ clojure.core$_PLUS_@5746e7cc>
Clojure
中没有函数相等的一般定义。如果两个对象相同,则它们应用为相等,这是一个微不足道的恒等式。但局部创建了一个新对象。例如:
user> (= (partial + 0) (partial + 0))
false
作为人类读者,我们可以看到它们是相同的函数(并且两者都是与
+
本身相同的函数)。但是Clojure语言中没有逻辑来确定这种相等。Clojure中没有函数相等的一般定义。如果两个对象相同,则它们应用为相等,这是一个微不足道的恒等式。但局部创建了一个新对象。例如:
user> (= (partial + 0) (partial + 0))
false
作为人类读者,我们可以看到它们是相同的函数(并且两者都是与+
本身相同的函数)。但Clojure语言中没有逻辑可以确定这种平等