私は標準 ML を初めて使用し、SML/NJ ランタイム環境について理解しようとしています。私はそれを私のニーズに合わせたいと思っています。具体的には、次のことを行います。
- デフォルトで IntInf を使用
- 文字列と IntInf が 70 文字に切り捨てられないようにします。
8 時間以上かけてドキュメントを読み、実験してわかったことを次に示します。
コマンドを使用して、int の上に IntInf をオーバーロードできます
open IntInf;
変数 Control.Print.stringDepth を使用して、表示される文字列の文字数を制御できます。たとえば、これにより、切り捨てられる前に 1000 文字が表示されます。
Control.Print.stringDepth := 1000;
IntInf 値に対して同じことを行うにはどうすればよいですか? 深さを無限に設定することはできますか (つまり、切り捨てはまったくありません)?
IntInf を開くことは、IntInf で int をオーバーロードする最良の方法ですか?
最後に、実行時にこれをすべて自動的にロードして、「sml」を呼び出したときにデフォルト環境になるようにするにはどうすればよいですか?
編集: Control.Print.intinfDepth というオプションがあり、大きな数値 (999999 など) を設定できることがわかりました。ただし、無限にする方法はわかりません。
私の他の質問はまだ答えられていません。
編集: Kansas State のクラス向けに、この SML/NJ カスタマイズのセットに出くわしました。独自のバナー メッセージを表示し、「val it = true : bool」を表示しないようにするには、SMLofNJ.exportML の戻り値をテストする必要があります。そうであれば、ヒープ イメージが復元された (つまり、起動された) だけであり、メッセージを表示できます。false の場合、ヒープ イメージは保存されたばかりです。