OCaml
Напишите свой первый сценарий OCaml
Поиск…
Привет, мир
В этом примере предполагается, что вы установили OCaml .
Компиляция кода OCaml
Создайте новый файл с именем hello.ml со следующим содержимым:
print_string "Hello world!\n"
ocamlc - это компилятор OCaml. Чтобы скомпилировать и запустить этот скрипт, запустите
$ ocamlc -o hello hello.ml
и затем выполнить полученный двоичный файл
$ ./hello
Hello world!
Выполнение кода OCaml
Вы также можете запустить этот скрипт, не компилируя его в двоичный файл. Вы можете сделать это, используя ocaml , систему ocaml toplevel, которая позволяет интерактивное использование OCaml. В своей оболочке просто запустите
$ ocaml hello.ml
Hello world!
В REPL
Откройте новую оболочку и введите ocaml чтобы открыть систему верхнего уровня. После сеанса вы можете ввести одну и ту же программу:
OCaml version 4.02.1
# print_string "hello world!\n";;
нажмите enter для оценки выражения и запуска печати.
hello world!
- : unit = ()
Успех! Мы видим, что это печатный hello world! , но что такое - : unit = () about? OCaml не имеет никаких утверждений, все это выражение, которое оценивает какое-то типизированное значение. В этом случае print_string - это функция, которая принимает string качестве входных данных и возвращает unit . Подумайте об unit как типе, который может принимать только одно значение, () (также называемое единицей) и представляет собой законченное вычисление, которое не возвращает значимого значения.
В этом случае print_string также имеет побочный эффект от ввода символов, полученных в качестве ввода на экран, поэтому мы видим первую строку.
Чтобы выйти из REPL, нажмите ctrl+D
Как сценарий Unix
У нас есть два способа создания сценария OCaml. Сначала используйте системный уровень (предоставленный вашим диспетчером пакетов, например apt-get ), а второй использует дополнительный уровень, предоставляемый OPAM .
Использовать систему
Откройте свой любимый редактор и напишите:
#!/usr/bin/ocaml
print_string "hello worlds!\n";;
После этого вы можете использовать chmod +x your_file.ml и вы можете выполнить свой скрипт с помощью ./your_file.ml .
Используйте верхний уровень, предоставляемый OPAM
#!/usr/bin/env ocaml
print_string "hello worlds!\n";;
Большая разница в версии вашего верхнего уровня. Действительно, если вы настроили свой OPAM с помощью определенного коммутатора (например, opam switch 4.03.0 ), сценарий будет использовать OCaml 4.03.0. Во-первых, в Debian Sid, например, скрипт будет использовать OCaml 4.02.3.
Вы можете заменить shebang на #!/usr/bin/env utop чтобы использовать utop вместо ванили.
utop
utop - еще один ocaml toplevel вне дистрибутива - это означает, что вам нужно загрузить и установить utop (простой способ - использовать OPAM: opam install utop ). utop имеет множество функций, таких как историческое, завершение и интерактивное редактирование строк.
Итак, если вам нужен простой способ попробовать некоторые коды utop , utop - лучший.
Зачем utop а не ocaml ?
utop и ocaml имеют большой разницы, если вам нужен сценарий ocaml, как описано выше. Но обычным явлением в сообществе OCaml является использование utop вместо ocaml .
Фактически, ocaml REPL обеспечивается распределением ocaml. Итак, этот REPL следует за циклом выпуска компилятора, и если вы хотите некоторые дополнительные функции, вам нужно подождать следующей версии компилятора. utop , как мы объяснили, находится за пределами дистрибутива, поэтому цикл выпуска не является ограничением компилятором, и если вы хотите получить дополнительную функцию, вы, скорее всего, попытаетесь использовать эту функцию внутри utop чем ocaml :)!
Для этого момента (и для исторической особенности) большинство людей в ocaml-сообществе предпочитают использовать utop чем ocaml .