Соответствующие методы интерактивной разработки OCaml с использованием VScode и терминала [закрыто]
Интересно, какой самый удобный способ программирования в Ocaml (в MAC)?
В настоящее время я использую VSCode для обнаружения синтаксических ошибок и ошибок типа, но затем я использую онлайн-интерпретаторы для компиляции (он создает ml) и запуска на нем примеров; Я имею в виду, чтобы создавать экземпляры переменных, тестовых примеров и т. Д. Например, я использую онлайн: https://try.ocamlpro.com/.
Я знаю, что это не лучший способ сделать это: например, если пакет не интегрирован (скажем,
num
), Я не могу
opam install num
и откройте его.
Поэтому мне интересно, какой вариант лучше всего иметь (1) классный интерфейс, такой как VSCode, и (2) компилировать + тестировать на лету.
Я думаю, что близок к следующему варианту: я пишу
ocaml
в терминале, а затем открывается режим:
OCaml version 4.10.2
#
#
#
...
Там я могу написать:
#open Num;; #open List;; #let...
но я не знаю, как на него загружать файлы.
Кто-то также сказал мне, что есть что-то под названием «утоп», но я посмотрел, и мне это кажется продвинутым.
Любая помощь приветствуется!
1 ответ
Этот режим разработки полностью поддерживается
Теперь, если вы еще не используете Dune, вы можете задаться вопросом, с чего начать. Хотя документация по дюнам хороша и исчерпывающа, никто не хочет тратить часы на изучение Dune, если единственное, что они хотят, - это играть с OCaml. Итак, вот быстрый совет: чтобы создать готовый к запуску код OCaml, используйте
dune init
, например,
dune init proj play
Это создаст папку, в которой будет полностью готов к использованию скелет проекта OCaml. Итак, давайте войдем в него,
cd play
Теперь мы можем легко собрать и запустить наш проект,
dune exec play
У нас также есть
play
библиотека в
lib
папка. Он пуст, но вы можете создавать там любые файлы, и они будут доступны в вашем
bin/main.ml
а также в
dune utop
, например, давайте создадим простой модуль,
(* file lib/say.ml *)
let hello () = print_endline "Hi!"
а затем мы можем использовать его в нашем исполняемом файле,
(* file bin/main.ml *)
let () = Play.Say.hello ()
и мы можем играть на верхнем уровне OCaml с нашими библиотеками, например,
$ dune utop
а затем в утопной оболочке
utop # Play.Say.hello ();;
Hi!
- : unit = ()
Так что насчет vscode? Пока играли в консоль, но
vscode
вместе с Shift-Enter
), который обеспечивает интерактивную и итеративную разработку снизу вверх.