Sök…


Hej världen

Detta exempel antar att du har installerat OCaml .

Kompilering av OCaml-kod

Skapa en ny fil med namnet hello.ml , med följande innehåll:

print_string "Hello world!\n"

ocamlc är OCaml-kompilatorn. För att kompilera och köra detta skript, kör

$ ocamlc -o hello hello.ml

och kör sedan den resulterande binären

$ ./hello
Hello world!

Utför OCaml-kod

Du kan också köra detta skript utan att sammanställa det till en binär. Du kan göra det genom att använda ocaml , ocaml toppnivåsystem som tillåter interaktiv användning av OCaml. Kör helt enkelt i ditt skal

$ ocaml hello.ml
Hello world!

I REPL

Öppna ett nytt skal och skriv ocaml att öppna toppnivån. En gång i sessionen kan du skriva samma program:

       OCaml version 4.02.1

# print_string "hello world!\n";;

tryck på enter för att utvärdera uttrycket och trigga utskriften.

hello world!
- : unit = ()

Framgång! Vi ser det tryckt hello world! , men vad handlar om - : unit = () om? OCaml har inga uttalanden, allt är ett uttryck som utvärderar till ett typat värde. I detta fall är print_string en funktion som tar in en string som ingång och returnerar en unit . Tänk på unit som en typ som bara kan ta ett värde, () (även kallad enhet) och representerar en färdig beräkning som inte ger något meningsfullt värde.

I detta fall har print_string också bieffekten av att sätta tecken som den fick som inmatning på skärmen, varför vi ser den första raden.

Tryck på ctrl+D att lämna REPL.

Som ett Unix-skript

Vi har två sätt att skapa ett OCaml-skript. Den första använder systemet toppnivå (tillhandahålls av din paketansvarig som apt-get ) och den andra använder toppnivån från OPAM .

Använd systemets toppnivå

Öppna din favoritredigerare och skriv:

#!/usr/bin/ocaml

print_string "hello worlds!\n";;

Efter det kan du använda chmod +x your_file.ml och du kan köra ditt skript med ./your_file.ml .

Använd toppnivån från OPAM

#!/usr/bin/env ocaml

print_string "hello worlds!\n";;

Den stora skillnaden handlar om versionen av ditt toppnivå. Om du konfigurerade OPAM med en specifik switch (som opam switch 4.03.0 ) kommer skriptet att använda OCaml 4.03.0. På det första sättet, till exempel i Debian Sid, använder skriptet OCaml 4.02.3.

Du kan ersätta shebang med #!/usr/bin/env utop att använda utop istället vaniljens toppnivå.

Utop

utop är en annan ocaml toppnivå utanför distributionen - det betyder att du måste ladda ner och installera utop (det enkla sättet är att använda OPAM: opam install utop ). utop har många funktioner som den historiska, färdigställandet och den interaktiva redigeringen av linjer.

Så om du vill ha ett enkelt sätt att prova några ocaml-koder är utop det bästa.

Varför utop och inte ocaml ?

utop och ocaml har ingen stor skillnad om du vill ha ett ocaml-skript som ovan. Men det vanliga i OCamlsamhället är att använda utop istället ocaml .

Faktum är att ocaml REPL tillhandahålls av ocaml-distributionen. Så denna REPL följer kompilatorns frisläppningscykel och om du vill ha några extrafunktioner måste du vänta på nästa utgåva av kompilatorn. utop , som vi förklarade, utanför distributionen, så frigöringscykeln begränsas inte av kompilatorn och om du vill ha en extra funktion kommer du mer sannolikt att försöka driva den här funktionen utop utom ocaml :)!

För denna punkt (och för det historiska inslaget) föredrar de flesta människor i ocaml-communityn utop än ocaml .



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow