Suche…


Hallo Welt

In diesem Beispiel wird davon ausgegangen, dass Sie OCaml installiert haben .

OCaml-Code kompilieren

Erstellen Sie eine neue Datei mit dem Namen hello.ml mit folgendem Inhalt:

print_string "Hello world!\n"

ocamlc ist der OCaml-Compiler. Um dieses Skript zu kompilieren und auszuführen, führen Sie es aus

$ ocamlc -o hello hello.ml

und dann die resultierende Binärdatei ausführen

$ ./hello
Hello world!

OCaml-Code ausführen

Sie können dieses Skript auch ausführen, ohne es in eine Binärdatei zu übersetzen. Verwenden Sie dazu ocaml , das ocaml-Toplevel-System, das die interaktive Verwendung von OCaml ermöglicht. In deiner Shell einfach laufen lassen

$ ocaml hello.ml
Hello world!

In der REPL

Öffnen Sie eine neue Shell, und geben Sie ocaml , um das Toplevel-System zu öffnen. Einmal in der Sitzung können Sie dasselbe Programm eingeben:

       OCaml version 4.02.1

# print_string "hello world!\n";;

Drücken Sie die Eingabetaste, um den Ausdruck auszuwerten und den Ausdruck auszulösen.

hello world!
- : unit = ()

Erfolg! Wir sehen es hello world! gedruckt hello world! , aber worum geht es in der - : unit = () ? OCaml hat keine Anweisungen, alles ist ein Ausdruck, der einen typisierten Wert ergibt. In diesem Fall ist print_string eine Funktion, die eine string als Eingabe übernimmt und eine unit zurückgibt. Stellen Sie sich unit als einen Typ vor, der nur einen Wert () (auch als Einheit bezeichnet) annehmen kann und eine abgeschlossene Berechnung darstellt, die keinen sinnvollen Wert zurückgibt.

In diesem Fall hat print_string auch den Nebeneffekt, dass die empfangenen Zeichen als Eingabe auf dem Bildschirm angezeigt werden, weshalb die erste Zeile angezeigt wird.

Um die REPL zu verlassen, drücken Sie ctrl+D

Als Unix-Skript

Es gibt zwei Möglichkeiten, ein OCaml-Skript zu erstellen. Die erste verwendet den System-Toplevel (von Ihrem Paket-Manager wie apt-get bereitgestellt) und der zweite den von OPAM bereitgestellten Toplevel.

Verwenden Sie das System-Toplevel

Öffne deinen Lieblingseditor und schreibe:

#!/usr/bin/ocaml

print_string "hello worlds!\n";;

Danach können Sie chmod +x your_file.ml und Ihr Skript mit ./your_file.ml ausführen.

Verwenden Sie den von OPAM zur Verfügung gestellten Toplevel

#!/usr/bin/env ocaml

print_string "hello worlds!\n";;

Der große Unterschied betrifft die Version Ihres Toplevels. Wenn Sie Ihr OPAM mit einem bestimmten Switch (wie opam switch 4.03.0 ) opam switch 4.03.0 , verwendet das Skript OCaml 4.03.0. In erster Linie verwendet das Skript beispielsweise in Debian Sid OCaml 4.02.3.

Sie können den Shebang durch #!/usr/bin/env utop , um utop anstelle des Vanilla-Toplevels zu verwenden.

utop

utop ist eine weitere oberste Ebene von ocaml außerhalb der Distribution - das heißt, Sie müssen utop herunterladen und installieren (der einfachste Weg ist die Verwendung von OPAM: opam install utop ). utop bietet viele Funktionen wie die Historie, die Fertigstellung und die interaktive Linienbearbeitung.

Also, wenn Sie eine einfache Möglichkeit haben möchten, einige ocaml-Codes utop ist utop das Beste.

Warum utop und nicht ocaml ?

utop und ocaml haben keinen großen Unterschied, wenn Sie ein ocaml-Skript wie oben möchten. In der OCaml-Community ist es jedoch üblich, utop statt ocaml .

Tatsächlich wird die ocaml REPL durch die okaml-Verteilung bereitgestellt. Diese REPL folgt also dem Freigabezyklus des Compilers. Wenn Sie zusätzliche Funktionen wünschen, müssen Sie auf die nächste Version des Compilers warten. utop , wie bereits erwähnt, außerhalb der Distribution. Der Release-Zyklus ist also keine Einschränkung durch den Compiler. Wenn Sie eine zusätzliche Funktion wünschen, werden Sie eher versuchen, diese Funktion innerhalb von utop als in ocaml :)!

Für diesen Punkt (und für die historische Besonderheit) bevorzugen die meisten Menschen in der ocaml-Gemeinschaft eher utop als ocaml .



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow