首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >peek不支持某些序列

peek不支持某些序列
EN

Stack Overflow用户
提问于 2021-02-10 19:17:05
回答 2查看 103关注 0票数 1

我遇到一个错误,当使用一个序列化对象的peek函数。这对我来说有点令人惊讶,因为我原以为peek可以与任何seq对象一起工作。

代码语言:javascript
复制
(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

documentation of 声明peek接受一个集合对象。但是序列也是集合,对吗?但peek不支持它。那么,这是一个文档错误吗?或者我还漏掉了什么?

EN

回答 2

Stack Overflow用户

发布于 2021-02-10 20:05:15

根据tomby42的说法,peek在8.2年前的文档注释中使用了“实现clojure.lang.IPersistentStack的持久类型(如clojure.lang.Persistent*)”。

票数 3
EN

Stack Overflow用户

发布于 2021-02-11 02:33:14

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66135825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档