У меня проблема с этой функцией, хотя она компилируется без ошибок!
Функция получает два вектора одинаковой длины n
, другой вектор длиной 2^n
и индекс. Функция выполняет простой расчет, а затем возвращает вектор.
Проблема появляется при попытке вызвать функцию. Например:
(check [1 2 3] [1 2 3] [1 2 3 4 5 6 7 8] 1)
java.lang.IllegalArgumentException: Key must be integer (NO_SOURCE_FILE:0)
Определение функции:
(defn check [row1 row2 arr j]
(
(def x1 (nth arr (nth row1 j)))
(def x2 (nth arr (nth row2 (- j 1))))
(def x3 (nth arr (nth row1 (- j 1))))
(if (<= x1 x2)
(
(def row1 (assoc row1 j x3))
row1
)
((def row1 (assoc row1 (- j 1) x2))
row1)
)
)
)