Clojure erfordern Syntaxbegründung
Es fällt mir schwer, die hier beschriebene Syntax für die Clojure zu verstehen (und mich deshalb daran zu erinnern):http://clojuredocs.org/clojure_core/1.3.0/clojure.core/require. Es scheint sowohl kontraintuitiv als auch uneinheitlich zu sein.
Im Folgenden wird beispielsweise erläutert, warum dieser Vektor in Anführungszeichen gesetzt werden muss:
(require '[clj-json.core :as json])
Gegenteilig intuitiv, da Vektoren normalerweise nicht in clojure angegeben werden (Listen werden angegeben und Vektoren werden als Daten behandelt).
Und ungleichmäßig, weil in diesem Fall der Vektor NICHT zitiert wird:
(ns xxx
(:require [clj-json.core :as json]))
Mir ist klar, dass die Funktion und die Anforderung:require
Die Verwendung innerhalb des ns-Makros ist nur optisch ähnlich, aber immer noch.
Es gibt auch andere seltsame Dinge, zum Beispiel kann ich das tun:
(require '(clj-json.core))
Das kann ich aber nicht:
(require '(clj-json.core :as json))
Kann jemand diese Fragen beantworten:
im ersten Beispiel, warum muss der Vektor in Anführungszeichen gesetzt werden?Warum muss es nicht im ns-Makro angegeben werden?Warum lässt die Listennotation nicht zu?:as
?Ich frage mich, ob es Gründe gibt, warum die Dinge so sind, wie sie sind, oder ob die Inkonsistenz zur Entwurfszeit einfach nicht bemerkt wurde.