6

実装依存かどうかはわかりません。念のため、Corman Lisp 3.0 を使用しています。

私がこのようなことをすると:

(loop for v being the hash-values of *my-hash-table*
  when (> v 1) sum v)

2 つの警告が表示されます。

;;; Warning: Unused variable G9063 in anonymous function
;;; Warning: Unused variable G9062 in anonymous function

Gの数は毎回変わります。

結果は正しいですが。彼らはどういう意味ですか?なぜ彼らは現れるのですか?loopこれらの警告につながる何らかの構文の誤用があるのではないかと思いますが、私はそれを確認できません。

4

1 に答える 1

6

Corman Lisp は何年も更新されていません。未使用のG*変数は、おそらくgensymのマクロ展開の ですloop。試す

(macroexpand '(loop ...))

これらの変数が何を保存するかを確認します。

于 2013-08-14T10:34:54.110 に答える