5

CLHS 言う

An attempt to print a circular structure with *print-circle* set
 to nil may lead to looping behavior and failure to terminate.

そして、これがあります:

この Lisp マクロは、それぞれの部分が機能しないのに、全体として機能するのはなぜですか?

どうやら、*print-circle*nil に設定すると驚きにつながるようです。*print-circle*多くのシステムでデフォルトで nil に設定されているのはなぜですか? コードの最初からグローバルに t に設定すると、何が問題になる可能性がありますか?

4

1 に答える 1

8

true に設定*print-circle*すると、すべての出力関数がサイクル チェックを実行する必要があります。つまり、速度が低下し、より多くのメモリが必要になる可能性があります。

循環構造を実際に使用しない場合 (私は Lisp のプロではありませんが、疫病のように循環構造を避ける傾向があります)、製品コードで循環チェックをオンにしないでしょう。

于 2013-07-02T15:42:18.990 に答える