Clojure noob here。玩弄列表和向量。Clojure。向量和列表。利弊和偷看
> (peek [1 2 3 4])
4
> (peek '(1 2 3 4))
1
按承诺工作。就像这样。
> (cons 1 [2 3 4])
(1 2 3 4)
> (cons 1 '(2 3 4))
(1 2 3 4)
我随意尝试对利弊结果使用偷看:
> (peek (cons 1 [2 3 4]))
ClassCastException clojure.lang.Cons cannot be cast to clojure.lang.IPersistentStack clojure.lang.RT.peek (RT.java:724)
这是怎么回事?
对,但我认为更重要的是'peek'和'cons'与不同的抽象有关,所以你不应该这样混合它们。 'peek'用于将持久性集合*视为'堆栈','cons'用于构造* seqs *。见'第一个'和'最后一个'。 – glts
@glts有道理,谢谢 – uKolka
另请参阅'conj'用于将项目添加到集合(包括堆栈)。 – amalloy