Просто чтобы быть предельно ясным, SML / NJ не является строго переводчиком. Это компилятор, который просто имеет REPL. Лучший способ добиться того, что вы предлагаете, - это создать образ кучи (в основном скомпилированный двоичный файл, который готов к загрузке системой времени выполнения SML / NJ), а затем запустить его напрямую, используя sml @SMLload=heapfile.img
, где heapfile.img
- это имя сгенерированного вами файла кучи. Вы также можете передать @SMLquiet
в качестве параметра командной строки. Это превзойдет любой вывод при загрузке файла кучи.
Возможно, вы просто пытаетесь скомпилировать программу во что-то, что вы можете запустить автономно, и в этом случае вы можете посмотреть на MLton компилятор.