为什么 (= (vector nil) (vec nil)) 返回 false?
这只是一个怪癖,还是有一些基本概念暗示着这一点?
Is this just a quirk, or is there some fundamental concept that implies this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
vec 转换为向量(nil 成为空向量),而 vector 使用给定元素创建向量。
您可以将这些表达式输入到 repl 中以查看它们的结果以及它们不相等的原因。
vec converts into a vector(nil becomes an empty vector) while vector creates a vector with the given elements.
you could have entered these expressions into a repl to see their results and why they're not equal.
用户> (矢量为零); => []
用户> (向量为零); => [nil]
用户> (= *1 *2) ; => false
为什么它们应该相等?
user> (vec nil) ; => []
user> (vector nil) ; => [nil]
user> (= *1 *2) ; => false
Why should these be equal?