在Clojure中应用plus函数
知道为什么吗在Clojure中应用plus函数,clojure,apply,Clojure,Apply,知道为什么吗 (+ nil ) ;-> returns nil (apply + nil) ;-> return 0 ? 多谢各位 这两种情况是不同的 在+nil的情况下,nil参数代替数字。在apply+nil的情况下,nil代替数字列表 相当于 user> (+ nil) nil 使用apply将是 user> (apply + '(nil)) nil 返回相同的结果 另一方面,通过调用apply+nil,您正在一个空列表上调用+,换句话说,在没有参数的情况下
(+ nil ) ;-> returns nil
(apply + nil) ;-> return 0 ?
多谢各位
这两种情况是不同的 在+nil的情况下,nil参数代替数字。在apply+nil的情况下,nil代替数字列表 相当于
user> (+ nil)
nil
使用apply将是
user> (apply + '(nil))
nil
返回相同的结果
另一方面,通过调用apply+nil,您正在一个空列表上调用+,换句话说,在没有参数的情况下调用+,返回0。以下各项均相当:
user> (+)
0
user> (apply + nil)
0
user> (apply + '())
0
这两种情况是不同的 在+nil的情况下,nil参数代替数字。在apply+nil的情况下,nil代替数字列表 相当于
user> (+ nil)
nil
使用apply将是
user> (apply + '(nil))
nil
返回相同的结果
另一方面,通过调用apply+nil,您正在一个空列表上调用+,换句话说,在没有参数的情况下调用+,返回0。以下各项均相当:
user> (+)
0
user> (apply + nil)
0
user> (apply + '())
0
apply+nil表示不使用等同于+的参数
apply+nil表示不使用等同于+的参数
FWIW apply+'nil返回nilFWIW apply+'nil返回nil