実際、私はクロージュア、特にシンボルを完全に理解しようとしています
(def a 1)
(type a)
;;=>java.lang.Long
(type 'a)
;;=>clojure.lang.Symbol
私はそれtypeが関数であることを知っているので、その引数が最初に評価されるので、上記のコードがこのように機能する理由を完全に理解しています.流れるコードでは、マクロを使用して評価を遅らせることにしました
(defmacro m-type [x] (type x))
(m-type a)
;;==>clojure.lang.Symbol
私はそれで大丈夫ですが、私が理解できないのはこれです:
(m-type 'a)
;;=>clojure.lang.Cons
'a の型が短所である理由