内部clojure函数将非字母数字符号转换为java类名

zca*_*ate 3 clojure

我在寻找clojure的内部实现,将非字母数字转化为单词.

例如clojure.core/assoc!被编译为assoc_BANG_等等,编译器在哪里进行转换?

A. *_*ebb 6

 user=> (munge "assoc!")
"assoc_BANG_"
Run Code Online (Sandbox Code Playgroud)
user=> (source munge)
(defn munge [s]
  ((if (symbol? s) symbol str) (clojure.lang.Compiler/munge (str s))))
Run Code Online (Sandbox Code Playgroud)