OCaml
Schrijf uw eerste OCaml-script
Zoeken…
Hallo Wereld
In dit voorbeeld wordt ervan uitgegaan dat u OCaml hebt geïnstalleerd .
OCaml-code compileren
Maak een nieuw bestand met de naam hello.ml , met de volgende inhoud:
print_string "Hello world!\n"
ocamlc is de OCaml-compiler. Voer uit om dit script te compileren en uit te voeren
$ ocamlc -o hello hello.ml
en voer vervolgens het resulterende binaire bestand uit
$ ./hello
Hello world!
OCaml-code uitvoeren
U kunt dit script ook uitvoeren zonder het in een binair bestand te compileren. U kunt dit doen door ocaml , het ocaml-topniveau-systeem dat interactief gebruik van OCaml mogelijk maakt. Ren gewoon in je shell
$ ocaml hello.ml
Hello world!
In de REPL
Open een nieuwe shell en typ ocaml om het systeem op het hoogste niveau te openen. Eenmaal in de sessie kunt u hetzelfde programma typen:
OCaml version 4.02.1
# print_string "hello world!\n";;
druk op enter om de uitdrukking te evalueren en de afdruk te activeren.
hello world!
- : unit = ()
Succes! We zien het gedrukte hello world! , maar waar gaat de - : unit = () over? OCaml heeft geen uitspraken, alles is een uitdrukking die resulteert in een getypte waarde. In dit geval is print_string een functie die een string als invoer opneemt en een unit retourneert. Beschouw unit als een type dat slechts één waarde kan aannemen, () (ook wel eenheid genoemd), en staat voor een voltooide berekening die geen betekenisvolle waarde oplevert.
In dit geval heeft print_string ook het neveneffect dat tekens die het heeft ontvangen als invoer op het scherm worden weergegeven. Daarom zien we de eerste regel.
Druk op ctrl+D om de REPL te verlaten.
Als een Unix-script
We hebben twee manieren om een OCaml-script te maken. Het eerste gebruik het systeem topniveau (verstrekt door uw pakketbeheerder zoals apt-get ) en het tweede gebruik het topniveau geleverd door OPAM .
Gebruik het systeem topniveau
Open je favoriete editor en schrijf:
#!/usr/bin/ocaml
print_string "hello worlds!\n";;
Hierna kunt u chmod +x your_file.ml en kunt u uw script uitvoeren met ./your_file.ml .
Gebruik het topniveau van OPAM
#!/usr/bin/env ocaml
print_string "hello worlds!\n";;
Het grote verschil gaat over de versie van uw topniveau. Inderdaad, als u uw OPAM hebt geconfigureerd met een specifieke schakelaar (zoals opam switch 4.03.0 ), zal het script OCaml 4.03.0 gebruiken. Ten eerste gebruikt het script in Debian Sid bijvoorbeeld OCaml 4.02.3.
Je kunt de shebang vervangen door #!/usr/bin/env utop om #!/usr/bin/env utop te gebruiken utop plaats van het vanille-topniveau.
Utop
utop is een ander ocaml-topniveau buiten de distributie - dat betekent dat je utop moet downloaden en installeren (de gemakkelijke manier is om OPAM te gebruiken: opam install utop ). utop heeft vele functies zoals het historische, de voltooiing en de interactieve utop .
Dus als u een eenvoudige manier wilt om enkele ocaml-codes te proberen, is utop de beste.
Waarom utop en niet ocaml ?
utop en ocaml hebben geen groot verschil als u een ocaml-script zoals hierboven wilt. Maar het gebruikelijk in de OCaml-gemeenschap is om utop te gebruiken utop plaats ocaml .
In feite wordt de ocaml REPL geleverd door de ocaml-distributie. Deze REPL volgt dus de releasecyclus van de compiler en als je wat extra's wilt, moet je wachten op de volgende release van de compiler. utop , zoals we hebben uitgelegd, valt buiten de distributie, dus de releasecyclus wordt niet beperkt door de compiler en als je een extra functie wilt, zul je eerder proberen deze functie in utop dan ocaml :)!
Voor dit punt (en voor de historische functie) gebruiken de meeste mensen in de ocaml-gemeenschap liever utop dan ocaml .