当前位置:  开发笔记 > 编程语言 > 正文

"或"在Clojure中如何运作?

如何解决《"或"在Clojure中如何运作?》经验,为你挑选了1个好方法。

为什么第二个操作计算为false?"或"参数在clojure中的功能是否有所不同?如果是这样,我应该如何编写操作,以便无论0在参数中的哪个位置,它都会计算为真?

(= (or 0 1) 0) ; true

(= (or 1 0) 0) ; false

Andriy Ivane.. 5

(or)(or x)(or x & next)- 从左到右一次评估一个表达式.

如果form返回逻辑true值,则or返回该值并且不评估任何其他表达式,否则返回最后一个表达式的值或者nil如果是最后一个表达式falsy(Source:Clojure documentation).

在第一个语句(= (or 0 1) 0)中(或0 1)返回0因为它是合乎逻辑的true(在clojure inly nil并且false是假的)然后与之比较0结果是true.

在第二个语句中,(= (or 1 0) 0)它返回1并将其与之比较,0并返回false,因为它们不相等.



1> Andriy Ivane..:

(or)(or x)(or x & next)- 从左到右一次评估一个表达式.

如果form返回逻辑true值,则or返回该值并且不评估任何其他表达式,否则返回最后一个表达式的值或者nil如果是最后一个表达式falsy(Source:Clojure documentation).

在第一个语句(= (or 0 1) 0)中(或0 1)返回0因为它是合乎逻辑的true(在clojure inly nil并且false是假的)然后与之比较0结果是true.

在第二个语句中,(= (or 1 0) 0)它返回1并将其与之比较,0并返回false,因为它们不相等.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有