2011-11-03 14 views
8

Dlaczego niektóre (wiele) funkcji wbudowanych Clojure są zdefiniowane przy użyciu def, a nie defn?Definicja funkcji wbudowanych w Clojure: def vs defn

Wiem, że defn jest skrótem do def, ale zastanawiam się, czy istnieje jakiś inny powód, na przykład kwestie dotyczące wydajności/czytelności/stylu/ładowania początkowego.

Odpowiedz

15

Czytaj dalej poniżej w clojure/core.clj - defn nie istnieje jeszcze na górze, ponieważ ten plik buduje język w jakim się znajduje. Po kilkuset liniach, defnis written, a funkcje po nim są zdefiniowane przez defn.

+1

geniusz. przyrostowa budowa języka jest jedną z wielu rzeczy, które czynią Clojure źródłem tak interesującej lektury! – mikera