我可以在 Common Lisp 中创建一个可迭代的类吗?

问题描述 投票:0回答:1

我想知道如果可能的话,如何使自定义类可迭代,以便

SEQUENCE
函数和宏可以在其上工作。

类似的东西

(loop for x in instance-of-my-custom-class
      do (print x))

(sort instance-of-my-custom-class #'<)

(aref instance-of-my-custom-class 3)
;; etc...

这在 Common Lisp 中可行吗?正常吗?

common-lisp clos
1个回答
0
投票

评论者已经给了我答案,所以我把它写在这里。该存储库的自述文件:https://github.com/Shimera/trivial-extensible-sequences详细解释了。

总而言之,根据我的需要创建新序列类型的能力并不是 Common Lisp 规范的一部分。然而,Common Lisp 的一些实现(例如 SBCL)支持这一点。请参阅https://www.sbcl.org/manual/index.html#Extensible-Sequences。上面链接的库为不支持可扩展序列协议的实现提供了后备。

© www.soinside.com 2019 - 2024. All rights reserved.