(map #(%) {:a \a})
;;;=> ArityException Wrong number of args (0) passed to: MapEntry
(map identity {:a \a})
;;;=> ([:a \a])
(map (fn [x] x) {:a \a}) ;
;;=> ([:a \a])
第一种写法是错误的,因为%就是[:a \a]这样的MapEntry,而我们知道[:a \a]在这里是被当做函数了,它缺少参数。
除此之外,Function literals也不可嵌套使用。
所以,大家还遇到哪些Function literals的限制呢?