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.