aktaran ve sorun bu iki ifade arasındaki farkı anlamak yaşıyorum: Ben unquote olmadan onları çalıştırdığınızdaClojure - korkunç belirsiz başlığı :)</p> <p>Ben makrolarında yeni olduğum için üzgünüm Confusion
`(+ 1 2 ~(+ 2 3)) ; => (clojure.core/+ 1 2 5)
'(+ 1 2 ~(+ 2 3)) ; => (+ 1 2 (clojure.core/unquote (+ 2 3)))
Nitelikli olmaktan çok benzerler.
`(+ 1 2 (+ 2 3)) ; => (clojure.core/+ 1 2 (clojure.core/+ 2 3))
'(+ 1 2 (+ 2 3)) ; => (+ 1 2 (+ 2 3))
Temelde 'vs' ile karıştırıldım. Anlayışım, her ikisinin de listedeki her şeyi sıraya koymasıdır, bu yüzden neden unquote'un farklı davrandığından emin değilim. Temel olarak 'hem' hem de 'davranmasını beklediğim şekilde davranır.
Teşekkürler!
unquoting verir Bawden] (http://www.scribd.com/doc/47702904/Bawden-Quasi-Quotation-in-Lisp). – Daimrod
Daimrod, evet, bağlantı için teşekkürler! (Yeni başlayanlar için not: Diğer Lisp lehçeleri ve Clojure arasında birkaç fark vardır. Örneğin, CL'de ve kağıda, ', (Clojure'deki beyaz boşluk), dizilemede kullanılır. Ayrıca, CL, a', 'dışında backquoted ifade geçersiz (genellikle bir okuyucu hatası).) – danlei
Teşekkürler, unquoting sözdizimi alıntı için ayrılmış olduğunu bilmiyordum. Bu kesinlikle sonuçları açıklıyor. Clojure'nin Joy'undan geçiyorum ve bu bölümü denemek ve denemek için Makro bölümünde duraklattım, bu yüzden mümkün olan bölümü bölümdeki açıklamaları kaçırdım :) – anonymous