欢迎!请参阅 关于 页面以了解关于这个网站的一些更多信息。
讨论: 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"。
更新至:添加了"1.7"
评论者:jbm
我想提议将 {{take-through}} 和 {{drop-through}} 作为备选名称。我认为“through”这个词可以更清晰地表达这些与 {{take-while}} 和 {{drop-while}} 的不同之处。
评论者:jafingerhut
由于今日提交的一些更改,两个补丁 CLJ-1451-drop-until.patch 和 CLJ-1451-take-until.patch (均为 2014 年 6 月 20 日的)不再干净地应用于最新的 Clojure master。我还未检查它们是否易于更新,但猜测只需更新 diff 上下文中的一些行。
有关如何更新补丁的建议,请参阅http://dev.clojure.org/display/community/Developing Patches部分。
评论者:gshayban
最好也涵盖转置器的情况。
评论者:michaelblume
重新滚了的补丁
已经涵盖了转置器的情况 =)
实际上我也喜欢 take/drop-through
Michael,转换器中不需要volatile方面的状态,比如take-while。只需将其包装为'reduced to terminate
a) 你关于take-until的看法是显然正确的
b) 真的,我不清楚我为什么要实现take-until,我要说是睡眠不足。
c) 我对如何在没有volatile的情况下使用drop-until感到困惑
Ghadi和我讨论了这个问题,想不出drop-until的用例。有什么吗?
这里有一个新的take-until补丁,包括生成测试。
开放性问题
take-until这个名字好吗?我最担心的是,take-until让人听起来像是对take的轻微修改,但这个函数相对于take翻转了谓词的意义。
Michael,虽然JIRA可以处理同一票据的多个相同名称的附件,但试图确定具有相同名称的哪个附件是想要的人会遇到困惑。您能否删除或重命名您的同名附件之一?有关删除补丁的说明,请参阅本维基页面上的“删除补丁”部分:http://dev.clojure.org/display/community/Developing Patches
补丁略有陈旧,所以我更新了适用于master的版本,但它几乎相同。保留归属权。
已标记为预筛。