Я новичок в Standard ML и пытаюсь разобраться в среде выполнения SML / NJ. Я хочу адаптировать его к своим потребностям. В частности, я хочу:
- Использовать IntInf по умолчанию
- Запретить усечение строк и IntInf до 70 символов.
Вот что я нашел в своих 8+ часах, читая документацию и экспериментируя.
Я могу перегрузить IntInf поверх int с помощью команды
open IntInf;
Я могу контролировать, сколько символов в строке отображается с помощью переменной Control.Print.stringDepth. Например, это позволит отображать 1000 символов перед усечением:
Control.Print.stringDepth := 1000;
Как мне сделать то же самое для значений IntInf? Могу ли я установить глубину на бесконечность (то есть вообще не обрезать)?
Является ли открытие IntInf лучшим способом перегрузки int с помощью IntInf?
Наконец, как заставить все это загружаться автоматически во время выполнения, чтобы при вызове «sml» оно находилось в моей среде по умолчанию?
Edit: с тех пор я узнал, что есть опция Control.Print.intinfDepth, для которой можно задать большое число (скажем, 999999) Я не знаю, как сделать его бесконечным.
Другие мои вопросы остаются без ответа.
Редактировать: я наткнулся на этот набор настроек SML / NJ для класса в штате Канзас . Чтобы отобразить собственное баннерное сообщение и избежать отображения «val it = true: bool», мне нужно проверить возвращаемое значение SMLofNJ.exportML. Если это так, образ кучи был только что восстановлен (т.е. запущен), и я могу отобразить сообщение. Если значение равно false, изображение кучи было просто сохранено.