Поиск…


Привет, мир

В этом примере предполагается, что вы установили 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 .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow