как дела?
Я совершенно новичок в Clojure, и я столкнулся с проблемой, которую, как я догадался, было бы легко решить, но я не могу понять, как это можно понять.
У меня есть метод, который генерирует вектор координат в квадратной доске. Результатом выполнения такой функции является что-то вроде
[{:x 1, :y 0} {:x 0, :y 1} {:x 2, y:3} {:x 3, :y 4}]
После запуска этой функции мне нужно применить другую функцию к приведенному выше результату. Так как я буду отображать функцию на коллекцию, я решил использовать функцию map, чтобы она подходила. Поэтому я написал следующий метод:
(defn attack [x y] (map (fn [coord] (println (get coord :x))) [{:x 1, :y 0} {:x 0, :y 1}]))
(я также пробовал приведенный выше пример с get-in вместо get, но безрезультатно)
Это не окончательная форма метода, а вместо этого я просто попытался увидеть, смогу ли я хотя бы что-то распечатать на терминале после запуска
clojure myscript.clj
Однако из этого ничего не выходит, и не имеет значения, возвращаю ли я значение из функции fn или нет. Например, это
(defn attack [x y] (map (fn [coord] coord) [{:x 1, :y 0} {:x 0, :y 1}]))
также ничего не возвращает. Кто-нибудь знает, как я мог бы по крайней мере получить доступ к значениям внутри вектора в моей функции fn?
Наконец, влияет ли это на то, что мой вектор генерируется при вызове другой функции?
Например,
(defn attack [x y] (map (fn [coord] coord) (get-attack-coordinates x y)))
это будет проблемой? Наверное, нет, но я подумал, что это хорошая идея - спросить на всякий случай.
Спасибо всем за чтение:)