【发布时间】:2012-04-28 20:57:58
【问题描述】:
我正在寻找一个函数,它返回 fn 计算结果为 true 的序列中的第一个元素。例如:
(first-map (fn [x] (= x 1)) '(3 4 1))
上面的假函数应该返回 1(列表中的最后一个元素)。 Clojure 中有这样的东西吗?
【问题讨论】:
-
为什么不只是
(first (filter #(= % 1) '(3 4 1))? -
@4e6 因为这会将函数应用于列表中的每个元素,这在大型列表中可能是不可取的。
-
地图是懒惰的,所以我认为不会。不过你应该测试一下。
标签: clojure