【问题标题】:Boolean value of expression in clojureclojure 中表达式的布尔值
【发布时间】:2012-06-16 06:41:27
【问题描述】:
clojure 中是否有任何函数可以计算给定表达式的布尔值?我的意思是,如果表达式为 nil 或 false,那么此函数返回 false,否则返回 true?
(to-bool nil) ; => false
(to-bool false) ; => false
(to-bool java.util.Date.) ; => true
(to-bool true) ; => true
(to-bool 7) ; => true
类似的东西?
【问题讨论】:
标签:
function
clojure
boolean
【解决方案1】:
boolean 是。
(boolean nil) ; => false
(boolean false) ; => false (I assume you expect false, not true here!)
(boolean (java.util.Date.)) ; => true
(boolean true) ; => true
(boolean 7) ; => true
【解决方案2】:
clojure 中只有两个逻辑 false:false、nil。
user=> (if false :true :false)
:false
user=> (if nil :true :false)
:false
user=> (if [] :true :false)
:true
user=> (if () :true :false)
:true
user=> (if #{} :true :false)
:true
user=> (if 1 :true :false)
:true
user=> (if 0 :true :false)
:true
user=> (if (java.util.Date.) :true :false)
:true