Il manuale italiano di OCaml che aspettavate: completo, verificato, moderno.
OCaml è il linguaggio con cui si scrivono compilatori, sistemi di trading finanziario e strumenti di verifica formale: un sistema di tipi tra i più espressivi in circolazione, prestazioni da codice nativo e, con OCaml 5, il parallelismo multicore. Questo manuale vi accompagna dai primi passi nel toplevel fino a un progetto completo con collaudi automatici, documentazione generata e pacchetto pronto per la pubblicazione.
Un percorso graduale in cinque parti:
- Fondamenti - installazione con opam e dune, valori, tipi, espressioni, funzioni, currying, ricorsione di coda
- Strutture dati e pattern matching - tuple, record, liste, tipi varianti, alberi, option e result
- Astrazione e modularità - moduli, signature, tipi astratti, funtori, Map e Set, moduli di prima classe
- Oggetti, errori e interazione - il sistema a oggetti strutturale, eccezioni, operatori let*, Printf, file e sistema
- Il linguaggio moderno - domini, mutex e atomiche di OCaml 5, l'ecosistema, un progetto finale completo con dune, alcotest e qcheck
Ogni capitolo segue la stessa struttura collaudata:
- teoria spiegata con gradualità e con esempi sempre eseguibili nel toplevel
- box di note, avvertenze e suggerimenti pratici
- una sezione Con l'IA con tre prompt calibrati per usare gli assistenti basati sull'intelligenza artificiale come compagni di studio, e una riflessione onesta sui loro limiti con OCaml
- tre esercizi svolti e commentati passo per passo
- cinque esercizi proposti, con le 70 soluzioni complete raccolte in appendice
Tutto il codice è stato verificato: ogni esempio, ogni esercizio e ogni soluzione sono stati eseguiti e controllati con il compilatore, inclusi i capitoli sul parallelismo compilati con OCaml 5. Niente pseudocodice, niente frammenti che dovrebbero funzionare: sessioni reali, con l'output autentico del toplevel.
Sei appendici di riferimento:
- installazione e configurazione dell'ambiente su Linux, macOS e Windows
- riferimento sintattico essenziale, per la consultazione rapida
- guida ragionata alla libreria standard, modulo per modulo
- glossario dei termini tecnici
- risorse per continuare: libri, comunità, esercizi in rete
- le soluzioni complete di tutti gli esercizi proposti
A chi si rivolge: a chi programma in Python, Java, C# o JavaScript e vuole scoprire la programmazione funzionale tipizzata; a studenti universitari di corsi su linguaggi e paradigmi; a chi ha incontrato F#, Rust o Scala e vuole risalire alla fonte delle loro idee migliori; a chiunque voglia capire perché chi prova OCaml non torna più indietro.
Non serve alcuna esperienza precedente con la programmazione funzionale: solo la curiosità di scoprire un modo diverso - e sorprendentemente solido - di costruire programmi. Il compilatore diventerà il vostro correttore di bozze: quando il codice compila, molto spesso è anche giusto.
Che cosa saprete fare alla fine: leggere e scrivere firme di tipo come una seconda lingua; modellare un dominio con record e varianti in modo che gli stati impossibili siano irrappresentabili; progettare interfacce con signature e tipi astratti che proteggono gli invarianti; scegliere con criterio fra eccezioni ed errori come valori; scrivere codice parallelo corretto con domini, mutex e atomiche; impostare un progetto professionale con dune, collaudi automatici e documentazione generata dai commenti.
Aprite il toplevel: la prima espressione vi aspetta.