OCaml: top-level e assegnazioni ‘let’

OCaml ha un top-level interattivo che offre all’utente la possibilità di interagire con il sistema attraverso un ciclo di lettura dell’input, interpretazione, esecuzione e stampa del risultato. Quindi quello che facciamo è inserire una serie di espressioni, OCaml le valuta ‘on the fly’ e mostra il risultato ed i loro tipi. In questa interazione le linee che iniziano con # sono input e le linee che inizano con – sono gli output forniti dal sistema. Le espressioni di input possono occupare più righe e, per poter essere valutate, devono terminare con ;; (2 punti e virgola consecutivi). Ovviamente c’è anche la possibilità di compilare un intero script OCaml. Per quanto riguarda l’ambiente Windows una volta scaricato e installato Ocaml si può lanciare il top-level sia in modalità solo-testo che in modalità di interfaccia grafica utente. Per lanciarlo in modalità testuale si apre un prompt e si digita il comando ocaml (da qualunque posizione tanto la variabile di percorso viene automaticamente settata) mentre per aprire l’interfaccia grafica c’è l’iconcina (troppo figa, con un cammello con gli occhiali da sole e un filo d’erba in bocca!)

Lancio OCaml e inizio a dargli in pasto delle semplici espressioni di esempio
Objective Caml version 3.08.3

# 2+3;;
- : int = 5
# 3+10*2;;
- : int = 23

Assegnazioni
Per dare un nome ad una variabile o al risultato di un’espressione in modo da poterla utilizzare in seguito si usa il costrutto let
Esempi:

# let doppio x = x*2;;
val doppio : int -> int = fun
# doppio 4;;
- : int = 8
# let a = 10;;
val a : int = 10
# doppio a;;
- : int = 20

N.B. fun dovrebbe essere racchiuso tra < e > solo che l’ho tolto perché wordpress lo vedeva come tag html e lo chiudeva automaticamente. Tanto non ha alcuna importanza, è solo la parte di output che dice che il risultato è un intero determinato dal calcolo di una certa funzione. Il discorso vale anche per il pezzettino qui sotto.

La riga
val doppio : int -> int = fun

indica che la funzione doppio prende come argomento un intero e restituisce ancora un intero, ma il discorso delle funzioni, dei loro parametri e dei risultati lo affronto in un post a parte perché ci son molti aspetti da vedere.
Questo post si ferma qui, preferisco farne molti su argomenti minimi che pochi molto lunghi e con troppa roba.

This entry was posted in $1$s. Bookmark the permalink.

2 thoughts on “OCaml: top-level e assegnazioni ‘let’

Leave a Reply

Your email address will not be published. Required fields are marked *