OCaml – intro

OCaml è il modo sintetico per dire Objective Caml, esattamente come si dice politene per polietilene o cencinquanta per centocinquanta (questo sono a Milano e dintorni). Poi Caml a sua volta sta per Categorical Abstract Machine Language, anche se l’abstract machine è stata abbandonata. Ed è una creatura francese, dell’INRIA. Si trova tutto su Wikipedia, al solito. Quella che non piace alla Banda del Nano Parruccato.

Il primo che mi ha fatto scoprire OCaml è stato MarkCC, con questo post, poi ci ha anche LOLlato su e è tornato recentemente sull’argomento. Nel frattempo ho scoperto che viene usato da un mio ex capo; sì di solito gli ex capi stanno un po’, come dire, ma questo no. E poi forse legge il blog: è un ottimo ex capo, ripensandoci.

Non è che adesso mi fionderò su OCaml e basta; anzi sarà, forse, preso un pizzico alla volta, in dosi quasi omeopatiche, lo sto ancora scoprendo. Mi affascina la programmazione funzionale, qui unificata con l’imperativa e la OOP. Sperando che non sia roba astrusamente astrusa, ma non dovrebbe 8)

Per Ubuntu OCaml c’è nel Software Center, batterie incluse, ma per adesso mi sono limitato a installare l’interprete con

sudo apt-get install ocaml-interp

per ora dovrebbe bastare.

Conviene partire dall’Objective CAML Tutorial. Uh! c’è la versione italiana!

Allora un tour (consiglio: pronunciare “un tour” en français) semplice semplice per ambientarsi.

Tutto quello che segue è preso dal tutorial it » Tutorial su Objective CAML al quale si rimanda per gli approfondimenti.

Provo a definire la funzione media, che restituisce (indovinate) la media tra due float:

OK! in 3 righe ci sono: come mettere i commenti; gli operatori reali che sono come quelli interi ma seguiti da un punto; il ;;, end della funzione; e la risposta di OCaml che indica tutti i tipi implicati.

Il passo logico successivo è quello di usare la funzione, chiamarla con i valori 3.0 e 4.0

OK! non si usano le parentesi; cioè si usano ma per un’altra cosa. E se si passa un tipo sbagliato OCaml non perdona, ma ci dice cosa non va.

Introduciamo una variabile (ahemm: non è una vera variabile come si usa nei linguaggi comuni, ne riparleremo)

OK! funziona. E qui c’è un’altra particolarità del linguaggio: float è qui usata come alias di float_of_int, sì si può.

OK! credo che come primo contatto, assaggino possa bastare. Ocaml si può usare ma ha le sue particolarità. Tante come si è visto. All’inizio è facile dimenticare il punto dopo l’operatore per i float, mettere delle parentesi dove non ci vanno, dimenticare il ;;, …
Personalmente quando faccio uno script in Lisp e poi torno alle cose ordinarie dimentico virgole e sbaglio le parentesi. Chissà cosa capiterà adesso 8)

Posta un commento o usa questo indirizzo per il trackback.

Commenti

  • Mattux  Il 16 ottobre 2011 alle 13:07

    Ottimo inizio! Aspetto le prossime puntate 🙂

  • zar  Il 16 ottobre 2011 alle 14:50

    Programmazione funzionale? Quella roba incomprensibile tipo haskell?

    • juhan  Il 16 ottobre 2011 alle 14:53

      mah! aspetta, adesso lo dico allo Zanasi che ti spacci per lui 😉
      E se sei un suo studente è capace che ti lambda come si deve, all’infinito, preparati!

      • zar  Il 16 ottobre 2011 alle 14:55

        Non so assolutamente di cosa tu stia parlando, e poi io sono io 🙂

  • juhan  Il 16 ottobre 2011 alle 15:19

    Sì, l’avevo capito ma volevo fare lo spiritoso.
    La programmazione non è solo quella del C e dintorni; neanche quella del Fortran. Recentemente mi è capitato di vedere roba scritta in R, in A+ e roba simile per cui il Lisp con funzioni che chiamano funzioni che … sembrano cose semplici e tranquille. Allora forse è il caso di vedere anche OCaml, anche se è un’avventura 😉

    • zar  Il 16 ottobre 2011 alle 15:23

      Io non so nulla di queste robe. All’università, però, mi spiegarono il prolog. Credo di essere uno dei pochi ad averci fatto una parte di un esame… Ce lo presentarono come il “linguaggio macchina della nuova generazione di computer”. Che ancora dobbiamo vedere, però.

Trackback

  • OCaml – intro cont. « Ok, panico su 20 ottobre 2011 alle 14:43

    […] l’esame di OCaml, iniziato qui. Mi ero perso su una cosa che dovrebbe essere banale ma un po’ quirkosa, imho. Poi, magari, […]

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: