Я написал в Clojure функцию, которая будет принимать строку 2-мерного массива, а затем умножает значения в ней на одно значение. У меня есть индекс для получения указанной строки c и значение для умножения строки в другом массиве.
Функция вернет массив, который теперь получил значения, умноженные на одно значение.
Вот код:
(def twod-array [[3.1 0.0023 0.35]
[0.21 0.00353 8.13]])
(def iandv [1 3.1])
(defn array-multiply [iandv twod-array]
(
let [array-row (nth twod-array (nth iandv 0))]
(map * [array-row] [(nth iandv 1)])
)
Let получает строку массива, а затем возвращает строку со значениями внутри, умноженными на значение массива «index and value».
Это самое близкое, что я получил, используя примеры с веб-сайтом clojure.do c, и я получаю ClassCastException следующего:
ClassCastException clojure.lang.PersistentVector cannot be cast to java.lang.Number clojure.lang.Numbers.multiply (Numbers.java:148)
Я был глядя на вектор карты и другие функции карты, но я не смог найти хорошее решение.