评论来自:hiredman
命名作为一个协议或接口似乎与在拥有命名空间时能够创建具有命名空间的 symbol 的能力无关。
我认为这个补丁还不够充分,不仅应该支持 (symbol ns "foo"),而且还应该支持 (symbol ns 'foo'),因为 (symbol 'foo) 和 (symbol "foo") 都有效,所以 (symbol 'bar 'foo) 也应该有效,但它不起作用。
如果Named是一个协议,并且如果将其扩展到String,并且如果你让符号函数从一个或两个Named对象创建符号,你仍然需要执行(symbol (ns-name ns) 'foo)或(symbol (ns-name ns) "foo")