小编Wol*_*ane的帖子

LISP - 制作新的独特符号

在Common Lisp程序中,我想找到一种方法来生成当时未在程序中使用的新符号.我知道(gensym)函数,但这会产生可能已存在于程序中的符号.我有一些理解,我需要实习符号,所以我尝试了这个:

(defun new-symbol () (intern (symbol-name (gensym))))
Run Code Online (Sandbox Code Playgroud)

这似乎得到了答案的一半.例如,

[1]> (new-symbol)
G3069
NIL
[2]> (new-symbol)
G3070
NIL
[3]> (defvar a 'G3071)
A
[4]> (new-symbol)
G3071
:INTERNAL
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该函数似乎认识到符号'G3071'已经在其他地方使用,但我不知道如果是这样的话,如何生成新符号.

symbols common-lisp

0
推荐指数
1
解决办法
409
查看次数

标签 统计

common-lisp ×1

symbols ×1