function - 为什么有些?在 Clojure 中将 false 作为参数时返回 true?

标签 function clojure functional-programming lisp clojurescript

我无法理解 Clojure 中 some? 函数的意图。

我需要一些函数(内置)在需要时返回 false(nil 或 false)。

例子如下:

(some? "1")
=> true

(some? nil)
=> false

(some? false) ;;Which is odd!!
=> true

最佳答案

查看 some? 的文档:

(some? x)

Returns true if x is not nil, false otherwise.

false 绝对不是 nil 因此 (some? false) 返回 true

它是nil?的补充

(= (some? x) (not (nil? x))

正如@delta 建议的那样,您可以使用 boolean检查某些东西是否不是 nilfalse

关于function - 为什么有些?在 Clojure 中将 false 作为参数时返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37545291/

相关文章:

c++ - 如何将此公式拆分为 C++ 中的函数?

Clojure 手指树和 flexvec

python - 计算python中的函数链

python - 我将如何理解Python中的这个深度绑定(bind)示例?

typescript - 有没有办法阻止 TypeScript 中的联合类型?

c++ - 无法在 Switch Case 中调用函数 - C++

python - 类实例没有用于在类外部传递对象的属性 'function_name' - python

sql - 具有新功能的 Asterisk

recursion - Clojure 中的递归惰性序列

concurrency - 为什么无锁并发如此重要(在 Clojure 中)?