プログラミング言語SML#解説 4.0.0版
13 SML#の拡張機能:動的型付け機構とJSONの型付き操作

13.3 プリティプリンタ

SML#の対話セッションで値を表示する機能も, リーフィケーション機構の上に実現されています. この対話セッションのプリンタを,任意のMLデータをプリティプリントする 関数としてユーザープログラムから呼び出すことができます. 以下の関数が提供されています.

  • Dynamic.pp : [’a#reify. ’a -> unit]. この関数は任意のMLデータを対話セッションと同じ形式で 標準出力に出力します. プリントデバッグなどに有用です.

  • Dynamic.format : [’a#reify. ’a -> string]. 標準出力に出力するかわりに文字列を返します.

これらの関数は多相関数内からも用いることができます. ただし,多相関数で用いた場合, その多相関数の型にreifyカインドが付いてしまい, 型が変わってしまうことがあることに注意が必要です.