Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure peek没有';我不支持某些序列_Clojure - Fatal编程技术网

Clojure peek没有';我不支持某些序列

Clojure peek没有';我不支持某些序列,clojure,Clojure,我在对seq对象使用peek函数时遇到错误。这对我来说有点令人惊讶,因为我希望peek可以处理任何seq对象 (def r0 (re-seq #"\w+" "foo bar")) (identity r0) ;; ("foo" "bar") (peek r0) ; (err) Execution error (ClassCastException) at (REPL:1). (peek '("fo

我在对seq对象使用
peek
函数时遇到错误。这对我来说有点令人惊讶,因为我希望
peek
可以处理任何seq对象

(def r0 
  (re-seq #"\w+" "foo bar"))
(identity r0)
;; ("foo" "bar")

(peek r0)
; (err) Execution error (ClassCastException) at (REPL:1).

(peek '("foo" "bar"))
;; "foo"

(= r0 '("foo" "bar"))
;; true

(type r0)
;; clojure.lang.Cons

(type '("foo"))
;; clojure.lang.PersistentList

表示
peek
接受一个集合对象。但是序列也是集合,对吗?但是
peek
不支持它。那么,这是一个文档错误吗?还是我遗漏了什么?

peek
与“持久类型实现
clojure.lang.IPersistentStack
(比如
clojure.lang.persistent*
)”一起工作,tomby42在8.2年前的文档说明中说。

peek
与“实现
clojure.lang.IPersistentStack
(如
clojure.lang.persistent*
)”的持久类型,根据tomby42,8.2年前的文档说明。

clojure 1.10.1中的函数
peek
的clojure文档字符串(截至本文撰写之时)是:“对于列表或队列,与第一个相同,对于向量,与,但是很多 比去年更有效率。如果集合为空,则返回nil。“


在一些关于peek关于Clojurians Slack的文档的讨论中,peek文档字符串中的“collection”一词可能指的是前面提到的列表、队列或向量的集合类型之一,而不是任意Clojure集合。也就是说,它的解释应该与“collection”一词相同“替换为短语“列表、队列或向量”。

Clojure在Clojure 1.10.1中的函数
peek
的文档字符串是:“对于列表或队列,与第一个相同,对于向量,与相同,但更多 比,last更有效。如果集合为空,则返回nil。“


在一些关于peek关于Clojurians Slack的文档的讨论中,peek文档字符串中的“collection”一词可能指的是前面提到的列表、队列或向量的集合类型之一,而不是任意Clojure集合。也就是说,应该将其解释为“集合”一词替换为短语“列表、队列或向量”。

文档中提到的是列表、队列或向量,而不是一般的集合。Peek适用于堆栈式集合(
IPersistentStack
)。TIL使用
Peek
而不是
last
来处理向量。在阅读有关集合和序列的文档时,我看到映射向量列表和集合是集合。我希望peek能够处理所有集合,但是peek似乎需要一个IPersistentStack。文档中提到的是列表、队列或向量,而不是一般的集合。Peek适用于堆栈式集合(
IPersistentStack
)。TIL使用
Peek
而不是
last
来处理向量。在阅读有关集合和序列的文档时,我看到映射向量列表和集合是集合。我希望peek能够处理所有的集合,但是peek似乎需要一个IPersistentStack。