Function SET-PPRINT-DISPATCH

UP


Function SET-PPRINT-DISPATCH

Function SET-PPRINT-DISPATCH

構文

set-pprint-dispatch type-specifier function &optional priority table => nil

引数と戻り値

type-specifier - 型指定子
function - 関数か、関数名か、nil
priority - 実数。デフォルトは0
table - pprintディスパッチテーブル。デフォルトは*print-pprint-dispatch*の値。

定義

tableで指定されたpprintディスパッチテーブルにエントリーを導入します。

type-specifierはエントリーのキーです。 set-pprint-dispatchの最初の動作は、 type-specifierに関連付けられた 以前に存在していたエントリーを削除することです。 これにより、与えられたpprintディスパッチテーブル内において 同じ型指定子に関連付けられるエントリーが 2つになることがあり得ないことを保証します。 型指定子の同一性はequalによってテストします。

pprintディスパッチテーブル内の各型指定子にには、 functionpriorityの2つの値が 関連付けられます。 functionは2つの引数を受け付ける必要があり、 最初の引数は出力を送信するストリーム、 次の引数は印刷するオブジェクトです。 functionはオブジェクトをストリームへ プリティプリントとして印刷とするべきです。 functionはオブジェクトが与えられたtype-specifierを 満たすと仮定することができます。 function*print-readably*に従うべきです。 functionによって返却されるどんな値も無視されます。

priorityは、オブジェクトがひとつ以上のエントリーと マッチするような衝突を解決するための優先順位です。

functionnilであることが許されます。 このような状況においては、 set-pprint-dispatchが返却されたあとは、 table内にtype-specifierのエントリーが無くなります。

例文

なし。

副作用

なし。

影響

なし。

例外

priorityが実数ではないときは、エラーが発生します。

参考

なし。

備考

pprintディスパッチテーブルは Lispコードのプリティプリンターを制御するときによく使用され、 次のような式のフォームによって示される型指定子が使われることが多いです。

(cons car-type cdr-type)

これは対応するオブジェクトがconsのセルであり、 car部はcar-typeという型指定子にマッチし、 cdr部はcdr-typeという型指定子にマッチするようなことを意味しています。 cdr-typeは省略することができ、 そのような場合はデフォルトではtになります。


TOP, Github