我有一个很难理解(并因此记住)Clojure的要求这里所描述的语法: http://clojuredocs.org/clojure_core/1.3.0/clojure.core/require 。 这似乎都直觉和非均匀。
例如,在下面为什么需要这个载体被引用:
(require '[clj-json.core :as json])
与直觉相反,因为通常矢量不Clojure中引述(列表被引用和载体被视为数据)。
和不均匀的,因为在这种情况下,载体不带引号:
(ns xxx
(:require [clj-json.core :as json]))
我认识到,需要功能和:require
使用的NS宏内部只有光学相似,但仍。
还有古怪的其他作品还有,比如我可以这样做:
(require '(clj-json.core))
但我不能这样做:
(require '(clj-json.core :as json))
有人能回答这些问题:
- 在第一个例子为何矢量需要加引号?
- 为什么它不需要在NS宏被引用?
- 为何列表表示不允许
:as
?
我不知道是否有原因,事情会是这样的,或者如果不一致只是在设计时注意到。