评论者:hiredman
将命名作为协议或接口似乎与当您有一个命名空间在手时能够创建带命名空间的符号没有直接关系。
我认为补丁还不够完善,不仅仅应该支持(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")