gpt4 book ai didi

Clojure:应用或到列表

转载 作者:行者123 更新时间:2023-12-03 03:39:29 27 4
gpt4 key购买 nike

这个问题类似于 In clojure, how to apply 'and' to a list? ,但解决方案不适用于我的问题。 every? 函数仅返回一个 bool 值。

or 是一个宏,因此此代码无效:

(apply or [nil 10 20])  ; I want to get 10 here, as if 'or was a function.

使用 not-every? 我只会得到 bool 值,但我想保留 or 的语义 - “true”元素应该是表达式的值。执行此操作的惯用方法是什么?

到目前为止我的想法:

(first (drop-while not [nil 10 20]))  ; = 10

最佳答案

您也许可以使用some为此:

(some identity [nil 10 20]) ; = 10

请注意,如果失败,这与不同

(some identity [false]) ; = nil
(or false) ; = false

关于Clojure:应用或到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18667847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com