che vedo questo comportamento in Clojure 1.2.1:(non = (tipo `(1)) (tipo` (1 2))) ;; Perché? (Elenco unico elemento, la sintassi-citazione, Cons, PersistentList)
user=> (type '(1 2))
clojure.lang.PersistentList
user=> (type `(1 2)) ;; notice syntax-quote
clojure.lang.Cons
user=> (type '(1))
clojure.lang.PersistentList
user=> (type `(1))
clojure.lang.PersistentList
mi aspettavo `(1) di essere un Contro proprio come` (1 2) è .
Ho anche provato:
user=> (type (cons 1 nil))
clojure.lang.PersistentList
user=> (type (cons 1 `()))
clojure.lang.Cons
user=> (type (cons 1 '()))
clojure.lang.Cons
user=> (type (cons 1 []))
clojure.lang.Cons
Allora, qual è la ragione per la `(1) e (cons 1 zero) per essere PersistentLists?
Grazie per la risposta! Questo spiega il comportamento. Ho pensato che ci fosse un buon motivo per cui le cose funzionassero in questo modo, ma se capisco correttamente questo è solo un capriccio, giusto? –
Penso di sì. Se vuoi davvero scoprirlo, prova a rimuoverlo e vedere se qualcosa si rompe. –
Probabilmente lo farò. Grazie. –