Как скомпилировать SML, используя SMLNJ, когда код находится в Notepad++?
Я совершенно новичок в SML и понятия не имею, как работать с чем-либо, связанным с ним. Я должен использовать компилятор SMLNJ, и в настоящее время я пишу с помощью Notepad++. Но как мне точно скомпилировать программу? Копировать и вставить код в командную строку SMLNJ? Или есть среда для SMLNJ, в которой я могу на самом деле кодировать и компилировать свой код? ПОЖАЛУЙСТА ПОМОГИ!
1 ответ
Если под "скомпилировать" вы имеете в виду "скомпилировать в автономный исполняемый файл" - не беспокойтесь об этом, когда сначала изучаете язык в качестве полного ответа. В принципе это возможно, хотя, похоже, есть практические вопросы (как этот отличный ответ подробно).
С другой стороны, SML/NJ имеет REPL на основе командной строки (Read-Evaluate-Print-Loop), который фактически является компилятором. Это инкрементный компилятор - это означает, что он компилирует вновь определенные функции в контексте определенных в настоящее время функций. В самом начале вы будете экспериментировать с короткими фрагментами, напечатанными непосредственно в REPL. Рано или поздно вам захочется написать код в виде NotePad++ . Просто напишите файл, сохраните его с расширением.sml, затем в типе REPL
use "filename";
и он загружает и компилирует ваши определения.
Уловка, которую я иногда использую, заключается в следующем. В верхней части моих файлов у меня есть такой комментарий:
(* val _ = (use "C:/Programs/sets.sml", OS.Process.system "cls"); *)
Вот sets.sml
просто это файл SML, который у меня есть на моей машине. Закончив редактирование файла, я сохраняю его, а затем копирую внутреннюю часть комментария (начиная с val
и до точки с запятой) в буфер обмена, а затем вставьте его в открытый SML REPL (используя меню редактирования для окна команд, которое появляется, когда вы нажимаете значок в верхнем левом углу окна команд). Это загрузит определения и предоставит вам очищенный REPL для экспериментов с вашими определениями.
В Notepad++, похоже, отсутствует файл определения синтаксиса для SML (хотя он и есть для F#, который может быть достаточно близок). Лично я делаю большую часть своего SML, используя Textpad. Это не с открытым исходным кодом, но Nagware по разумной цене, что примерно сопоставимо с Notepad++. С их веб-сайта вы можете загрузить полезный файл определения синтаксиса SML, который отлично выполняет логическую подсветку вашего кода. Я даже создал инструмент Textpad (который по неизвестным причинам работает только спорадически) для автоматического сохранения файла, открытия SML и вызова use
на имя файла.