【发布时间】:2017-07-14 18:45:10
【问题描述】:
我正在考虑使用大量 gensym 来区分我正在构建的系统中的对象(例如 erlang 中的 refs)。
我应该在创建大量 gensym 后遇到系统限制吗?
作为参考,我正在使用 SBCL。
【问题讨论】:
-
什么是大数?
-
想做一些大胆的事情吗?试试
(loop (prin1 (gensym)))。不要怪我。最终,这个实验似乎表明 gensym 数没有限制。此外,您始终可以通过将另一个符号作为参数来替换gensym的G。 -
@Mooncrater
gensym采用字符串或正整数。它可能在某些实现中与符号一起使用,但它不是可移植的。 -
CL 中的符号通常是相当大的对象。如果你只是想要很多独特的 cookie,那么
(cons nil nil)是一个很好的方法—— conses 通常是两个词,几乎可以做到最小。
标签: lisp common-lisp symbols sbcl