在匿名函数中使用 %
Using % in an anonymous function
我知道给定一个匿名函数我可以使用像 %1 %2 这样的参数,例如
(#(+ %1 %2 %3) 2 4 6)
但是解决一个问题
(true? (x :a {:a nil :b 2}))
x 可能在哪里
#(nil? (%2 % %))
或
#(not (%2 % 1))
后面没有数字的 % 是什么意思?
这是 4clojure
上的练习
提前致谢
没有任何数字的 %
总是等同于 %1
(即匿名函数的第一个参数)。
来自docs:
%
is a synonym for %1
, %n
designates the nth arg (1-based), and %&
designates a rest arg.
我看到有人提到(不记得在哪里,但我同意)当匿名函数接受多个参数时,最好将数字包含在 %1
中,因为这样更清楚到 reader.
我知道给定一个匿名函数我可以使用像 %1 %2 这样的参数,例如
(#(+ %1 %2 %3) 2 4 6)
但是解决一个问题
(true? (x :a {:a nil :b 2}))
x 可能在哪里
#(nil? (%2 % %))
或
#(not (%2 % 1))
后面没有数字的 % 是什么意思?
这是 4clojure
上的练习提前致谢
没有任何数字的 %
总是等同于 %1
(即匿名函数的第一个参数)。
来自docs:
%
is a synonym for%1
,%n
designates the nth arg (1-based), and%&
designates a rest arg.
我看到有人提到(不记得在哪里,但我同意)当匿名函数接受多个参数时,最好将数字包含在 %1
中,因为这样更清楚到 reader.