什么是"匿名函数中未使用的变量G****"?

aka*_*nuk 6 hashtable common-lisp unused-variables

我不知道它是否依赖于实现.万一重要,我使用的是Corman Lisp 3.0

当我做这样的事情时:

(loop for v being the hash-values of *my-hash-table*
  when (> v 1) sum v)
Run Code Online (Sandbox Code Playgroud)

我收到两个警告:

;;; Warning: Unused variable G9063 in anonymous function
;;; Warning: Unused variable G9062 in anonymous function
Run Code Online (Sandbox Code Playgroud)

随着G的数量每次都在变化.

结果是正确的.他们的意思是什么?它们为什么会出现?我想可能存在某种loop语法滥用,导致这些警告,但我没有看到它.

ace*_*ent 6

Corman Lisp多年来一直没有更新.将G*未使用的变量可能是gensymS IN的宏扩展loop.尝试

(macroexpand '(loop ...))
Run Code Online (Sandbox Code Playgroud)

看看这些变量存储的是什么.