У меня есть ленивый seq карт, и я пытаюсь удалить карты из этого lazy-seq на основе возвращаемого значения из другой функции. Другая функция вернет true или false в зависимости от того, возвращает ли вызов get значение, равное параметру. Проблема в том, что функция работает неправильно, и я не слишком уверен в этом.clojure: Удаление карт с ленивого seq карт
(defn filter-by-name "Filter by names" [name m]
(if (= name (get m :name_of_person)) true false))
;To be called on each map
(defn remove-nonmatching-values "Remove anything not matching" [filter-val all-maps]
(map #(remove (filter-by-name filter-val %)) all-maps))
;trying to call on the lazy seq
'if' является избыточным, вы можете просто написать' (defn filter-by-name "Фильтровать по именам" [name m] (= name (get m: name_of_person))) ' –
Просто заметил, что, спасибо. – m0butt
Чтобы уменьшить многословие, скажите спасибо, если вы найдете ценный вклад, чтобы поддержать ответ или комментарий, посмотрите на [tour] (https://stackoverflow.com/tour). Этот сайт - все о получении ответы. Это не дискуссионный форум. Там нет chit-chat._ :) –