首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Clojure koans:(if false []) vs (if false [:a :b :c])

Clojure koans:(if false []) vs (if false [:a :b :c])
EN

Stack Overflow用户
提问于 2013-01-07 17:17:09
回答 1查看 137关注 0票数 1

这周我开始学习Clojure。我正在用我自己的方式处理条件考恩,并不理解以下断言:

代码语言:javascript
运行
复制
  "Some of them leave you no alternative"
  (= [] (if (> 4 3)
      []))

  "And in such a situation you may have nothing"
  (= nil (if (nil? 0)
      [:a :b :c]))

第二个是我所期望的--条件的计算结果为false--编辑:实际上,它是真的,我只是还不习惯“运算符优先”推理!,if尝试返回第二个备选方案,但没有找到,因此返回nil。那么,为什么第一个不返回nil呢?是不是因为一个空的结构“足够接近”到零?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-07 17:20:38

因为第一个if的计算结果为true (因为4确实大于3),所以else-子句是不相关的。它返回then-子句,该子句已定义并等于[]

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14192921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档