私はClojureにはかなり新しく、Clojureのアポストロフィとバックティックの違いを完全に理解しているかどうかはわかりません。私が間違っている場合Clojure - '(アポストロフィ)と `(バックティック)の違い
(def x 5)
;; Question 1
(+ x x) ;; evaluates to 10
'(+ x x) ;; evaluates to (+ x x)
`(+ x x) ;; evaluates to (clojure.core/+ user/x user/x)
;; Question 2
`(~+ ~x ~x) ;; evaluates to (#<core$_PLUS_ [email protected]> 5 5)
- は私を修正して、バッククォート記号は彼らのVARのに解決することを可能にするのに対し、そのアポストロフィが、それぞれのVARのに解決からすべてのシンボル(すなわち+およびX)を防ぐように思えます(ただし、var内の値は評価されません)。これは正確ですか?
- ここでは引用符(〜)で正確に何をしていますか? varを実際の値に評価していますか(つまり、関数オブジェクトの+シンボルと数値オブジェクトのxシンボル)?これをClojureのREAD-COMPILE-EVALの段階で説明できれば、それも役立ちます。
ニースの答え。あなたは深く掘るしたい場合に優れたブログの記事はここにあります:https://blog.8thlight.com/colin-jones/2012/05/22/quoting-without-confusion.html –
はKLIPSEのhttpで暮らすすべての人々の例を参照してください。 //app.klipse.tech/?cljs_in=(ns%20my.ns)%0A%0A%5B%0A%20%20 '(%2B%20x%20x)%20%0A%20%20%60( %2B%20%20%60%%2B%20%20%60%%2B%20%20%60% ))%0A%5D%0A – viebel