欢迎!有关如何运作的更多信息,请参阅关于页面。
讨论: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
评论由:alexmiller发布
欢迎补丁(带测试)。
评论由:ataggart发布
为 take-until 和 drop-until 实现和测试,每个补丁一个。
评论由:wagjo发布
请将:added 元数据改为“1.7”。
更新为:added "1.7"。
评论者:jbm
我想提议使用“{{take-through}}”和“{{drop-through}}”作为备选名称。我认为“through”可以更清晰地表达它们与“{{take-while}}”和“{{drop-while}}”的不同。
评论者:jafingerhut
日期为2014年6月20日的两个补丁CLJ-1451-drop-until.patch和CLJ-1451-take-until.patch由于今天早些时候提交的一些更改,现在无法干净地应用于最新的Clojure master。我没有检查它们是否容易更新,但猜测可能只需更新diff上下文的几行。
有关更新补丁的建议,请参阅《更新陈旧补丁》部分。
评论者:gshayban
最好也涵盖了transducer的情况。
评论者:michaelblume
重新滚动补丁
涵盖了transducer的情况 =)
实际上我也喜欢take/drop-through
Michael,和take-while一样,在transducer中不需要volatile或state。只需包装在'reduced以终止即可。
a) 在 take-until 方面,你明显是正确的
b) 对于我的 take-until 实现方式,我真的不知道当时该怎么想的,我要声明是睡眠不足
c) 我不明白如何在没有易失性变量的情况下使 drop-until 工作
我和 Ghadi 讨论了这个话题,但想不出 drop-until 的用途案例。有什么吗?
这是一个新的 take-until 补丁,包括生成性测试。
开放性问题
take-until 这个名字好吗?我最担心的是,take-until 好像是对 take 的一点点改进,但实际上这个函数相对于 take 反转了谓词的逻辑意义。
Michael,虽然 JIRA 可以处理同一个票据的多个同名附件,但对于试图确定哪个同名附件是打算使用的的人来说可能很困惑。你能否删除或重命名其中一个同名附件?有关删除补丁的说明请参阅本维基页面上的 "删除补丁" 部分:http://dev.clojure.org/display/community/Developing Patches
补丁稍微有点过时了,所以我更新了它以便应用到 master 上,但它几乎是一样的。归功保留。
标记为预筛选。