评论者: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")