2012-07-26 3 views

답변

7

#((println "bar))은 독자가 (fn [] ((println "bar")))으로 번역되었습니다. 여분의 괄호에 유의하십시오. (println "bar")은 여기에 bar을 인쇄하고 nil을 반환하고 바깥 괄호 때문에 nil 자체가 함수로 호출됩니다. nil은 사실 null이며, 역 참조를 시도하면 NPE가됩니다.

#(..) : #(println "bar") 안에 여분의 괄호 쌍을 넣으면 안됩니다.

+0

고맙습니다. 당신은 분명히했습니다. –

+0

당신을 진심으로 환영합니다. 참고하시기 바랍니다. (http://clojure.org/reader#The%20Reader--Macro%20characters) 일반적으로 Clojure 독자 매크로와'# (..)'형식에 대한 광범위한 문서를 찾을 수 있습니다. –