clojure wymaga uzasadnienia składni

Trudno mi zrozumieć (a więc pamiętać), że clojure wymaga opisanej tutaj składni:http://clojuredocs.org/clojure_core/1.3.0/clojure.core/require. Wydaje się, że jest przeciwny intuicji i niejednolity.

Na przykład, dlaczego poniższy wektor musi być cytowany:

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

Licznik intuicyjny, ponieważ normalnie wektory nie są cytowane w clojure (listy są cytowane, a wektory traktowane jako dane).

I niejednolite, ponieważ w tym przypadku wektor NIE jest cytowany:

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

Zdaję sobie sprawę, że funkcja wymagająca i funkcja:require użycie wewnątrz makra ns jest tylko optycznie podobne, ale nadal.

Są też inne dziwactwa, na przykład mogę to zrobić:

(require '(clj-json.core))

Ale nie mogę tego zrobić:

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

Czy ktoś może odpowiedzieć na te pytania:

w pierwszym przykładzie dlaczego wektor musi być cytowany?dlaczego nie musi być cytowany w makro ns?dlaczego notacja listy nie pozwala:as?

Zastanawiam się, czy istnieją powody, dla których rzeczy są takie, jakimi są, lub czy niespójność nie została zauważona w czasie projektowania.

questionAnswers(1)

yourAnswerToTheQuestion