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

Joh*_*own 8 equality vector clojure

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

DaV*_*nci 21

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

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

你可以将这些表达式输入到一个repl中,看看它们的结果以及为什么它们不相等.


May*_*iel 6

user> (vec nil) ; => []

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

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

为什么这些应该是平等的?

  • 我的问题是修辞. (10认同)