Я получаю страшное * не может быть приведено к ошибке IFn с помощью простой математической функции здесь:
(defn calc [sc1 m1 alpha beta gamma ta1 tb1 min_m1 min_tca tca_ratio x32]
(*
(max(0,
(+
(* alpha log(sc1))
(* beta log(m1))
(* gamma (/ ta1 tb1))
(- log(ta1) log(tb1)))))
(max(x32,(/ m1 min_m1)))
(max(x32,(/ tca_ratio min_tca)))))
;;;;;;;;;;;;
Аргументы - это просто набор чисел:
(calc 1 2 3 4 5 1 2 3 4 5 1)
Мои мысли / Мой вопрос
Обычно, когда я получаю эту ошибку, я обнаруживаю, что это связано с
1) Дополнительные скобки (то есть, когда я случайно вставил дополнительное замыкание в свой код) ИЛИ
2) Аргументы, которые искажены (очевидно - исключение приведения).
У меня вопрос просто ... как исправить этот фрагмент и, если нужно, - как я могу победить это общее исключение раз и навсегда? Кажется, что это происходит довольно часто в моих экспедициях по кодированию в Clojure, и я думаю, что, возможно, у меня еще нет правильного стиля разработки.
-------------------------------------------- -----------
ОБНОВЛЕНИЕ:
Я искал свой код с нерегулярным синтаксисом. Ошибки были во внутренних функциях, которые
использовал вызовы функций в стиле java / c: например, max / log ...