【发布时间】:2015-08-03 15:12:57
【问题描述】:
我有一个lazy-seq 地图,我正试图根据另一个函数的返回值从该lazy-seq 中删除地图。另一个函数将返回 true 或 false,具体取决于 get 调用是否返回与参数相等的值。问题是该功能无法正常工作,我不太确定为什么。
(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 "Filter by names" [name m] (= name (get m :name_of_person))) -
刚刚注意到,谢谢。
-
为了减少冗长,如果您发现有价值的贡献,表示感谢的方式是对答案或评论投赞成票,请查看tour 该网站旨在获取答案.这不是一个讨论论坛。没有闲聊。 :)
-
我无法投票,否则我会这样做,只需要 2 个代表。
标签: clojure