为什么(键"")在Clojure中返回nil,而(键"abc")是错误?

dav*_*ers 5 collections clojure

我是Clojure的新手.的行为让我觉得不一致:

user=> (keys "")
nil
user=> (keys "abc")
ClassCastException
Run Code Online (Sandbox Code Playgroud)

空集合似乎是专门处理的,测试用例表明这是故意的.这种行为背后的想法是什么?

Ank*_*kur 2

这样做的原因是,当使用seq函数将集合转换为序列时,如果集合为空,seq将返回 nil 而不是空序列。还有另一个线程讨论其原因。