在匿名函数中使用%

时间:2015-01-15 14:18:41

标签: clojure functional-programming

据我所知,给定一个匿名函数,我可以使用%1%2之类的参数,例如

(#(+ %1 %2 %3) 2 4 6)

但解决问题

(true?  (x :a {:a nil :b 2}))

其中x可以是

#(nil? (%2 % %))

#(not (%2 % 1))

%之后没有数字的含义是什么意思?

这是4clojure

的练习

提前致谢

1 个答案:

答案 0 :(得分:2)

没有任何数字的%总是等同于%1(即匿名函数的第一个参数)。

来自docs

  

%%1的同义词,%n指定第n个arg(从1开始),%&指定休息arg。

我已经看到提到过了(我不记得在哪里,但我同意),当匿名函数占用多个参数时,最好在%1中包含数字,因为它是读者更清楚。