2024 Clojure 状态调查!中分享您的想法。

欢迎!请参阅关于页面以获取更多有关该功能的详细信息。

+3 投票
转换器

讨论: 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

  • 包含 take-until 的转换器自变量
  • 包含转换器生成测试中的包含

21 答案

0 投票

评论由:alexmiller

欢迎补丁(需附带测试)。

0 投票

评论由:ataggart

为 take-until 和 drop-until 实现和测试,每个都是一补丁。

0 投票

评论由:wagjo

请将 :added 元数据更改为 "1.7"。

0 投票

评论由:ataggart

更新到 :added "1.7"

0 投票

评论由:jbm 制作

我想提出 {{take-through}} 和 {{drop-through}} 作为备选名称。我认为 "through" 能更清晰地表达这些名称与 {{take-while}} 和 {{drop-while}} 的区别。

0 投票

评论由: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 中的“更新过时补丁”部分。

0 投票

评论由:gshayban 制作

最好也涵盖 transducer 的情况。

0 投票

评论由:michaelblume 制作

重新滚轮补丁

0 投票

评论由:michaelblume 制作

已涵盖 transducer 情况 =)

0 投票

评论由:michaelblume 制作

实际上我也喜欢 take/drop-through

0 投票

评论由:gshayban 制作

Michael,传感器中不需要volatile或state,例如take-while。只需用'减少以终止'进行包裹。

0 投票

评论由:michaelblume 制作

a) 你关于take-until的说法很明确。

b) 严重地说,我不知道我的take-until实现是在想什么,我想我是因为缺乏睡眠。

c) 我不清楚如何在没有volatile的情况下使drop-until工作。

0 投票

评论由:michaelblume 制作

我和Ghadi讨论了这个问题,但我们想不出drop-until的使用案例。有吗?

这里有一个新的take-until补丁,包括生成测试。

开放性问题

take-until这个名称好吗?我最担心的是,take-until听起来像是take的一个微小修改,但这个函数相对于take反向了谓词的含义。

0 投票

评论由:jafingerhut 制作

Michael,虽然JIRA可以处理同一票证的同一名称的多个附件,但这会让试图确定哪个有相同名称的人感到困惑。你能否删除或重命名你的同名附件之一?有关删除补丁的说明,请参阅本维基页面上的“删除补丁”部分: http://dev.clojure.org/display/community/Developing Patches

0 投票

评论由:alexmiller

由于补丁略有陈旧,所以我更新了它以应用于master,但它几乎相同。保留归属权。

标记为预审。

...