Clojure中函数名中的箭头
对于下面的代码,箭头是宏还是函数名中的简单字符?(来自)Clojure中函数名中的箭头,clojure,Clojure,对于下面的代码,箭头是宏还是函数名中的简单字符?(来自) 箭头是函数名的一部分。有一个函数定义,不是吗 (defn file->map [file] ;; TODO) (defn)定义一个函数。在您的回复中,键入: (doc defn) (source defn) 即使Clojure核心代码也提供了这样的名称,例如cond->、cond->、as->、some->谢谢。我没想到arrow作为函数名的一部分是合法的。字符目前未被列为在符号中使用的安全字符,但很有可能它会继续使用
箭头是函数名的一部分。有一个函数定义,不是吗
(defn file->map [file]
;; TODO)
(defn)定义一个函数。在您的回复中,键入:
(doc defn)
(source defn)
即使Clojure核心代码也提供了这样的名称,例如cond->、cond->、as->、some->谢谢。我没想到arrow作为函数名的一部分是合法的。
字符目前未被列为在符号中使用的安全字符,但很有可能它会继续使用,因为组合->
很普遍。@A.Webb Clojure实际使用了它们。例如cond->>、cond->、as->,当然还有一些->>,将来读者不太可能为这些核心功能提供异常情况。但是,请注意,这些字符都在尾部,有些字符目前在某些位置被接受,而在符号中则不被接受,例如
,:
@A.Webb:还有defred生成的函数:->Foo
和map->Foo
。所以在我看来,这个角色还没有被明确允许是一个疏忽,因为Clojure自己到处都使用这个符号。也许他们正在考虑XML文本,并希望在
(doc defn)
(source defn)