为什么(=(vector nil)(vec nil))返回false?

时间:2011-02-13 21:32:03

标签: vector clojure equality

这只是一个怪癖,还是有一些基本概念暗示了这一点?

2 个答案:

答案 0 :(得分:21)

vec转换为矢量(nil变为空矢量),而vector创建具有给定元素的矢量。

  

(vec nil)=> []
  (vector nil)=>   [零]

你可以将这些表达式输入到一个repl中,以查看它们的结果以及它们不相等的原因。

答案 1 :(得分:6)

user> (vec nil) ; => []

user> (vector nil) ; => [nil]

user> (= *1 *2) ; => false

为什么这些是平等的?