Co robią symbole Clojure, gdy są używane jako funkcje?

Próbując rozwiązać problem 4Clojure ”Uniwersalny silnik obliczeniowy„obejmujący ponowną ocenę, przypadkowo skończyłem nazywając coś takiego:

(apply '/ '(16 8))

raczej niż zamierzone:

(apply / '(16 8))

Miało to dezorientujący efekt uboczny powrotu8, co sprawiło, że pomyślałem, że pomieszałem matematykę.

Później zdałem sobie sprawę z błędu po debugowaniu - nie udało mi się ocenić/ symbol przed próbą wywołania go - i tak to zrozumiałclojure.lang.Symbol musi wdrożyćclojure.lang.IFn. Ale co to za implementacja?robić? Wszystko, co mogę zrobić, to wrócićnil z jednym argumentem lub drugim argumentem, jeśli został podany.

questionAnswers(1)

yourAnswerToTheQuestion