clojure требует синтаксического обоснования

Мне трудно понять (и, следовательно, вспомнить) необходимость использования синтаксиса, описанного здесь:http://clojuredocs.org/clojure_core/1.3.0/clojure.core/require, Это кажется противоречивым и неоднородным.

Например, в следующем, почему этот вектор должен быть заключен в кавычки:

(require '[clj-json.core :as json])

Счетчик интуитивно понятен, потому что обычно векторы не заключаются в кавычки (списки заключаются в кавычки, а векторы обрабатываются как данные).

И неравномерно, потому что в этом случае вектор НЕ указан:

(ns xxx 
    (:require [clj-json.core :as json]))

Я понимаю, что требуется функция и:require использование внутри макроса ns только оптически похоже, но все же.

Есть и другие странности, например, я могу сделать это:

(require '(clj-json.core))

Но я не могу сделать это:

(require '(clj-json.core :as json))

Может кто-нибудь ответить на эти вопросы:

in the first example why does the vector need to be quoted? why does it not need to be quoted in the ns macro? why does the list notation not allow :as?

Мне интересно, есть ли причины, почему вещи такие, какие они есть, или если несоответствие просто не было замечено во время разработки.

Ответы на вопрос(1)

Ваш ответ на вопрос