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

欢迎!请参阅关于页面以了解更多关于其工作方式的信息。

+3
转换器

讨论:https://groups.google.com/d/topic/clojure-dev/NaAuBz6SpkY/discussion

当需要使用 (take-while pred coll) 但需要包含第一个使 (pred item) 为假的项时,会出现这种情况。

(take-while pos? [1 2 0 3]) => (1 2) (take-until zero? [1 2 0 3]) => (1 2 0)

补丁: clj-1451.patch

  • 包含 take-until 的转换器arity
  • 包含转换为生成测试中的包含

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}}作为替代名称的建议。我认为“通过”这个词更清楚地表达了与{{take-while}}和{{drop-while}}的区别。

0

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

0

评论者:gshayban

最好也涵盖transducer的情况。

0

评论者:michaelblume

重新滚动补丁

0

评论者:michaelblume

覆盖了transducer的情况 =)

0

评论者:michaelblume

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

0

评论者:gshayban

Michael,与take-while类似,在transducer中不需要volatile/state。只需包裹以'reduced to terminate终结即可

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 可以处理同一个票据具有相同名称的多个附件,但对于试图确定哪个同名附件是需要的,会有些令人困惑。你能删除或重命名你的同名称附件之一吗?有关删除补丁的说明请参阅本wiki页面中的“删除补丁”部分:[http://dev.clojure.org/display/community/Developing+Patches](http://dev.clojure.org/display/community/Developing Patches)

0

评论者:alexmiller

由于补丁稍微有些过时,所以我更新了它可以应用在master上,但它几乎是一样的。保留了贡献者信息。

标记为预筛选。

...