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

欢迎!请查阅关于页面以了解此功能的一些更多信息。

0
序列

这个版本的 some() 怎么样?

 (defn some [pred coll]
  (loop [s (seq coll)]
    (when s
      (or (pred (first s)) (recur (next s))))))

1 个答案

+1

被选中
我之前不知道这个。

我也做了一些性能测试,但我发现这相当棘手,因为从 clojure(script) 到裸机编程有太多因素需要考虑。

我认为我的主要观点是,无论性能如何,至少对我来说,某些版本的“逻辑”并不正确 :-)......理论上可以只用 rest 而不用 next,但在较新的 Clojure 版本中,出于某些原因,其表现并没有达到我的期望(至少在我的基准测试中是这样的,所以要小心解释太多…… :-))

所以无论如何,我认为这个版本解决了某些的“逻辑/命令式”问题,同时可以说足够清晰,易于阅读,所以我一度希望能为 Clojure 本身做出一点微小的贡献(无论大小)。 :-)

所以我看到其他人已经想到了重写某些(比我做得更复杂…… :-)),这很有趣(我真的很喜欢这个想法!),但与此同时,这也让人有些沮丧 :-)

所以,我想说的是,Clojure 真的非常棒,保持良好的工作状态!
通过
@alexmiller ……所以我想我已经连续两个月在设计这个了 :-(…… (…… https://clojureverse.org/t/some-rest-vs-next/4598 ……)……然而,在我看来,我不仅没有在获得对 `next`、`rest` 和 `some` 的满意理解上取得任何进展,相反!……我思考这个问题越多,我的心里就越混乱!!!……所以你如果能提供一些解释(任何都行!)我会极其感激……现在我发现这不仅仅是你的责任去给别人“喂食”,我们都知道大家都很忙,工作等…………所以如果除此之外,至少请告诉我我是否漏掉了什么显而易见的东西,或者这个问题确实像我开始觉得的那样复杂和棘手 :-(…… ……这让我快要疯了!!! :-(……)
通过
编辑 编辑者
首先,请不要让它让你发疯 :-)
其次,你可以去 clojurians.slack.com 的 #clojure-dev 和/或 #cljs-dev 频道获取更多反馈和想法。

编辑了
我同意 Andy 的观点,在 Slack 上进行实时讨论可能要高效得多,因为目前看来你甚至无法清楚地提出任何具体问题以消除任何疑惑?
...