Szukaj…


Witaj świecie

W tym przykładzie założono, że zainstalowałeś OCaml .

Kompilowanie kodu OCaml

Utwórz nowy plik o nazwie hello.ml , o następującej treści:

print_string "Hello world!\n"

ocamlc to kompilator OCaml. Aby skompilować i uruchomić ten skrypt, uruchom

$ ocamlc -o hello hello.ml

a następnie uruchom wynikowy plik binarny

$ ./hello
Hello world!

Wykonywanie kodu OCaml

Możesz także uruchomić ten skrypt bez kompilowania go w plik binarny. Możesz to zrobić za pomocą ocaml , systemu najwyższego poziomu ocaml, który umożliwia interaktywne korzystanie z OCaml. W swojej powłoce po prostu uruchom

$ ocaml hello.ml
Hello world!

W REPL

Otwórz nową powłokę i wpisz ocaml aby otworzyć system najwyższego poziomu. W sesji możesz wpisać ten sam program:

       OCaml version 4.02.1

# print_string "hello world!\n";;

naciśnij klawisz Enter, aby ocenić wyrażenie, i uruchom druk.

hello world!
- : unit = ()

Sukces! Widzimy to wydrukowane hello world! , ale o czym jest - : unit = () ? OCaml nie ma instrukcji, wszystko jest wyrażeniem, które zwraca pewną wpisaną wartość. W tym przypadku print_string jest funkcją, która pobiera string jako dane wejściowe i zwraca unit . Pomyśl o unit jako o typie, który może przyjąć tylko jedną wartość () (zwaną również jednostką) i reprezentuje zakończone obliczenia, które nie zwracają żadnej znaczącej wartości.

W tym przypadku print_string ma również efekt uboczny polegający na umieszczaniu znaków otrzymanych jako dane wejściowe na ekranie, dlatego widzimy pierwszy wiersz.

Aby wyjść z REPL, naciśnij ctrl+D

Jako skrypt uniksowy

Mamy dwa sposoby na utworzenie skryptu OCaml. Pierwszy używa najwyższego poziomu systemu (dostarczonego przez menedżera pakietów, takiego jak apt-get ), a drugi używa najwyższego poziomu dostarczonego przez OPAM .

Użyj najwyższego poziomu systemu

Otwórz swój ulubiony edytor i napisz:

#!/usr/bin/ocaml

print_string "hello worlds!\n";;

Następnie możesz użyć chmod +x your_file.ml i możesz wykonać skrypt za pomocą ./your_file.ml .

Użyj najwyższego poziomu dostarczonego przez OPAM

#!/usr/bin/env ocaml

print_string "hello worlds!\n";;

Duża różnica dotyczy wersji twojego najwyższego poziomu. Rzeczywiście, jeśli skonfigurowałeś OPAM za pomocą określonego przełącznika (takiego jak opam switch 4.03.0 ), skrypt użyje OCaml 4.03.0. Po pierwsze, na przykład w Debian Sid, skrypt użyje OCaml 4.02.3.

Możesz zastąpić shebang przez #!/usr/bin/env utop aby użyć utop zamiast waniliowego najwyższego poziomu.

utop

utop to kolejny najwyższy poziom ocaml poza dystrybucją - oznacza to, że musisz pobrać i zainstalować utop (najprostszym sposobem jest użycie OPAM: opam install utop ). utop ma wiele funkcji, takich jak historyczny, uzupełnianie i interaktywna edycja linii.

Więc jeśli chcesz w łatwy sposób wypróbować niektóre kody ocaml, utop jest najlepszy.

Dlaczego utop a nie ocaml ?

utop i ocaml nie mają dużej różnicy, jeśli chcesz skrypt ocaml jak wyżej. Ale powszechną rzeczą w społeczności OCaml jest użycie utop zamiast ocaml .

W rzeczywistości, ocaml REPL jest zapewniony przez rozkład ocaml. Tak więc REPL śledzi cykl wydawania kompilatora, a jeśli chcesz mieć dodatkowe funkcje, musisz poczekać na kolejną wersję kompilatora. utop , jak wyjaśniliśmy, jest poza dystrybucją, więc cykl wydania nie jest ograniczony przez kompilator, a jeśli chcesz dodatkowej funkcji, bardziej prawdopodobne jest, że spróbujesz wepchnąć tę funkcję do utop niż ocaml :)!

W tym punkcie (i dla funkcji historycznej) większość ludzi w społeczności ocaml woli używać utop niż ocaml .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow