Следуйте вместе со мной на Clojure REPL:
(def apos 'banana) ; "apostropied" banana.
=> #'thic.core/apos
apos
=> banana
(def quo "banana") ; "quoted" banana.
=> #'thic.core/quo
quo
=> "banana"
Очевидно, банан и «банан» - не одно и то же. Я ПОЛУЧАЮ, что "банан" - это строка, но что такое банан ?
Когда я их набираю, я получаю:
type apos
=> #object[clojure.core$type 0x69085742 "clojure.core$type@69085742"]
=> banana
type quo
=> #object[clojure.core$type 0x69085742 "clojure.core$type@69085742"]
=> "banana"
Итак, банан и " банан "- это тот же ТИП?
Чтобы добавить к моему недоумению, на REPL я получаю следующее:
(type apos) ; Add a pair of parents.
=> clojure.lang.Symbol ; apos becomes a Symbol.
(type quo) ; and
=> java.lang.String ; quo becomes a String.
Что я здесь вижу? банан (без кавычек) - это «символ», а «банан» (в кавычках) - это «строка»? apos - это символ, а quo - это строка?
После многих попыток я все еще зациклен на выборе символа и значения символа. SO 20 век. : -)