欢迎!请访问关于页面以了解更多关于此功能的信息。
讨论:https://groups.google.com/d/topic/clojure-dev/NaAuBz6SpkY/discussion
在需要包含对(pred item)为 false 的第一项时,会出现,但通常使用 (take-while pred coll)。
(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上下文中的一些行。
有关更新补丁的建议,请参阅http://dev.clojure.org/display/community/Developing Patches中的“更新过时的补丁”部分。
评论者:gshayban
最好也涵盖transducer的情况。
评论者:michaelblume
重新滚动补丁
已涵盖transducer情况 =)
实际上我也喜欢take/drop-through
迈克尔,传感器中不需要使用易失性/状态,比如 take-while。只需将其封装在'reduced-to-terminate'中即可
a) 你关于 take-until 的观点非常明确
b) 真的,我不知道我当时对 take-until 的实现有什么想法,我要说我没有睡好。
c) 我不知道如何在没有易失性的情况下让 drop-until 工作
我和 Ghadi 讨论了这个问题,但我们想不出 drop-until 的用法。有吗?
这里有一个新的 take-until 补丁,包括生成测试。
开放问题
take-until 这个名字好吗?我最担心的是,take-until 会让它听起来像是对 take 的轻微修改,但这个函数相对于 take 会反转谓词的意义。
迈克尔,虽然 JIRA 可以处理具有相同名称的多个附件,但对于试图确定具有同一名称的哪一个的意图的人来说可能会很困惑。你能删除或重命名你的一个同名附件吗?有关删除补丁的说明请参阅本维基页面的“删除补丁”部分:[链接]
由于补丁略过时,我更新了使其适用于 master,但它几乎是相同的。保留了归属权。
标记为预审通过。