Difficoltà con la programmazione funzionale

Recentemente ho iniziato a sbirciare roba riguardante la programmazione funzionale, Haskell in particolare. Con grosse difficoltà, provo a scriverle così forse riesco anche a chiarirmi.

Comincio con due giustificazioni in parte auto-assolutorie.

Per prima cosa vengo da una lunga storia in cui ho cambiato diverse volte tutto (o quasi). Non avete idea di come si faceva ai miei tempi con il Fortran; certi costrutti erano molto simili all’assembler (OK, molto semplificato ma tutti quei GOTO e gli IF calcolati). E te lo insegnavano così anche a scuola, peccato non aver conservato gli appunti. Poi –come già detto– c’è stata una lunga evoluzione… A proposito tendo a auto-censurarmi anche su Turbo Pascal > Borland Pascal > Delphi; forse perché solo Windows, forse perché la gente (quelli che conosco) preferiva il Basic (anche qui tutta una lunga serie di sapori).

C’è poi un altro motivo: sono vecchio. E con l’età –posso citare un über-nerd? ecco:

Non ci sono dubbi, c’è una ragione per cui si va a scuola da giovani: il cervello e la sua plasticità invecchiano, e, sebbene sia possibile tenerli allenati, come per tutti gli allenamenti la fatica e lo sforzo aumentano con il tempo.

Qui, al punto 3. Notare che Marco è molto più giovane di me, per dire io ho avuto contatti professionali con il suocero (sì rockz anche lui).

C’è infine un altro motivo, quasi altrettanto importante: if it ain’t broke, don’t fix it (qui).

Che nel mio caso implica che non si deve cambiare niente visto che Python | Matlab (Octave) | Visual Basic | you name it va benissimo. Sì con Windows. Non vi dico della mia proposta di dare una chance a Julia 😐

Ma chissene! mica lo faccio più per lavoro, per un ritorno pratico! ormai sono fuori e posso dedicarmi a quello che mi piace. Per esempio il Lisp (in realtà un’evoluzione, Racket, che è Scheme) l’ho tenuto in stand-by per 30 anni 👽

E adesso –per quel che ne so, sono isolato in fondo alla West Padagna– sono sexy Go, Rust e Haskell.

Sono partito a seguire un tutorial che non mi ha soddisfatto più di tanto; mi ha lasciato con idee confuse. E poi non è nemmeno finito. Ma non mi arrendo, anzi presto comincio con un altro, diverso.

Intanto ho scoperto questo post: A Beginner-Friendly Tour through Functional Programming in Scala. Parla di Scala ma vale per l’FP tutta. Un po’ lungo (e forse troppo dettagliato) ma OK. Ecco:

The essential core of functional programming is quite simple: build programs by composing functions.

In this context, “function” does not refer to a “computer science” function, that is, a hunk of machine code, but rather, a mathematical function:

Totality. A function must yield a value for every possible input.

Determinism. A function must yield the same value for the same input.

Purity. A function’s only effect must be the computation of its return value.

OK, tutto da leggere; non l’ho stampato, anche se… (sono vecchio).

Poi, prossimamente… forse… probabilmente… 😊

🤩

Posta un commento o usa questo indirizzo per il trackback.

Trackback

Lascia un commento

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