Clojure Функции более высокого порядка принимают аргументы функции, но что такое синтаксис?
Я делаю учебник по закрытию http://clojurescriptkoans.com, и я застрял здесь: http://clojurescriptkoans.com/#functions/9
Похоже на это
Функции более высокого порядка принимают аргументы функции
(= 25 ( _ (fn [n] (* n n))))
Я должен заполнить что-то на знаке подчеркивания, чтобы сделать выражение истинным. Я не знаю, что делать.
Ответы
Ответ 1
Синтаксис просто состоит в привязке функции, а затем вызывает ее.
Поскольку это упражнение, я покажу подобную ситуацию, а не покажу решение упражнения:
user> ((fn [f] (f "abc")) (fn [s] (str s s s)))
"abcabcabc"
здесь я связываю аргумент первой функции с f
и вызываю f
с аргументом "abc"
.
Ответ 2
или вы можете использовать короткую нотацию:
#(%1 5)