Next: , Previous: , Up: Edebug   [Contents][Index]


19.2.11 Edebugでのプリント

プログラム内の式が循環リスト構造(circular list structure)を含む値を生成する場合は、Edebugがそれをプリントしようとしたときエラーとなるかもしれません。

循環構造への対処の1つとして、print-lengthprint-levelにプリントの切り詰めをセットする方法があります。Edebugは変数edebug-print-lengthedebug-print-levelの値(非nil値なら)を、これらの変数にバインドします。出力に影響する変数を参照してください。

User Option: edebug-print-length

nilなら結果をプリントするときEdebugはprint-lengthをこの値にバインドする。デフォルト値は50

User Option: edebug-print-level

nilなら結果をプリントするときEdebugはprint-levelをこの値にバインドする。デフォルト値は50

print-circleを非nil値にバインドして、循環構造や要素を共有する構造にたいして、より参考になる情報をプリントするよういにすることもできます。

以下は循環構造を作成するコードの例です:

(setq a (list 'x 'y))
(setcar a a)

print-circleが非nilなら、プリント関数(prin1等)はaを‘#1=(#1# y)’のようにプリントします。‘#1=’という表記はその後の構造をラベル‘1’とラベル付けして、‘#1#’表記はその前にラベル付けされた構造を参照しています。この表記はリストとベクターの任意の共有要素に使用されます。

User Option: edebug-print-circle

nilなら結果をプリントするときEdebugはprint-circleをこの値にバインドする。デフォルト値はt

プリントをどのようにカスタマイズできるかに関する詳細は出力関数を参照してください。