6
、角括弧は、ベクトルを定義するための速記である:vector
ためClojureで `vector`と` [...] `の動作が異なるのはなぜですか? Clojureので
user=> (vector 'a 'b 'c)
[a b c]
user=> ['a 'b 'c]
[a b c]
The documentation pageは長い道のりとのベクトルを定義する短い方法を話します。
ただし、defn
とdoseq
には違いがあるようです。この違いを占めている何
user=> (doseq [x (range 1 4)] (printf "%d\n" x))
1
2
3
nil
user=> (doseq (vector 'x (range 1 4)) (printf "%d\n" x))
IllegalArgumentException doseq requires a vector for its binding in user:1 clojure.core/doseq (core.clj:2935)
?角括弧は読者に特別な地位を与えられているのか、それとも特定の形をしているのでしょうか?マクロが展開される前[]
は、読み込み時に評価されている間