2010-12-11 46 views

Répondre

3

La macro lecteur #(<expr>) enveloppe le <expr> dans un ensemble supplémentaire de parenthèses, donc #([%1]) à quelque chose d'équivalent développe à (fn [%1] ([%1])) et non (fn [%1] [%1]). Donc tu as raison. Ils ne sont pas entièrement équivalents.

Vous pouvez essayer ce qui suit dans le REPL qui révèlera l'expansion exacte:

user=> '#([%1])     
(fn* [p1__862#] ([p1__862#])) 
user=> '#(inc %1) 
(fn* [p1__865#] (inc p1__865#))