В Clojure разница между функцией, функцией в кавычках и функцией в кавычках

В clojure я хотел бы знать, в чем разница между тремя ниже.

(println (map + '(1 2 3) '(4 5 6))) 

(println (map '+ '(1 2 3) '(4 5 6))) 

(println (map #'+ '(1 2 3) '(4 5 6))) 

Результаты:

(5 7 9) 

(4 5 6) 

(5 7 9) 

Я не могу понять поведение второго.

Я чувствую, что первое и третье одно и то же в clojure, то есть в Lisp-1. и не делает различий между вычислением переменной и одноименной функцией.

Это может быть основной вопрос, но, кажется, недостаточно информации. Пожалуйста, научите меня.

Спасибо.

21
задан mikera 19 March 2012 в 02:08
поделиться