clojure.core / map ведет себя очень удивительно - PullRequest
2 голосов
/ 12 февраля 2020
(map :one '({:one "one"}))
;; ("one")
(map :name '(r b))
;; (nil nil)
(:name r)
;; "Steve"
(map :one '({:one "one"} {:one "two"}))
;; ("one" "two")
r
;; {:color :red, :name "Steve"}

Карта, как вы можете видеть здесь, работает, как и ожидалось, для списка хэш-карт, но для карт, которые были привязаны к символу r и b, карта возвращает nil.

Что здесь происходит, почему карта не возвращает правильное значение для r (Каким ИМО должна быть строка "Стив")

1 Ответ

4 голосов
/ 12 февраля 2020

Из-за '(r b) вы получаете буквальные символы r и b, а не карты, к которым они разрешаются.

Здесь вы вызываете (:name 'r), и это возвращает nil.

...