У меня есть функция, которая получает вектор и суммирует все элементы.Как передать функцию как параметры
(def rec
(fn [numbers acc]
(if (empty? numbers)
acc
(recur (rest numbers) (+ acc (first numbers))))))
(prn (rec [1 2 3] 0))
Но вместо того, чтобы вызвать функцию «+» Я хочу передать операцию в качестве параметра, то это значит, я хочу передать функцию в качестве параметра, а затем вызвать функцию.
Я пробовал:
(def rec
(fn [f numbers acc]
(if (empty? numbers)
acc
(recur (rest numbers) (f acc (first numbers))))))
(prn (rec + [4 2 1] 0))
Но это не работает, я знаю, что есть более эффективные способы обобщающие чисел в векторе, но я начинаю с функциональной, так что важно, чтобы сделать этот вид упражнение.
Заранее спасибо.
Я только что понял это. Огромное спасибо Диего. И спасибо за советы по определению функции. Является ли идентификация правильной? – renanreismartins
@renanreismartins Из перспективы отступов/выравнивания/форматирования ваш код идеален. – amalloy