欢迎!请查看 关于 页面,了解更多有关该工作的信息。
讨论:https://groups.google.com/d/topic/clojure-dev/NaAuBz6SpkY/discussion
当你会使用 (take-while pred coll) 时,它会出现,但我需要包含 (pred item) 为 false 的第一个项。
(take-while pos? [1 2 0 3]) => (1 2) (take-until zero? [1 2 0 3]) => (1 2 0)
补丁: clj-1451.patch
评论者:gshayban
我觉得这已被 CLJ-1906 取代
这肯定被 halt-when 取代
halt-when
评论者:alexmiller
这不是惰态的,但这是使用 halt-when 编写 take-until 的一种方式
(defn take-until [p s] (transduce (halt-when p (fn [r h] (conj r h))) conj [] s))
评论由:[email protected] 发表
我想建议:(sequence (halt-when p conj) s),但sequence不支持在值减少的情况下停止,所以这行不通。
(sequence (halt-when p conj) s)
是的,halt-when在transduce以外的可传输上下文中使用有点复杂。