Programmazione funzionale
Salve a tutti 
Ultimamente sono stato incuriosito dalla programmazione funzionale, e vorrei cominciare a studiarla partendo dal linguaggio giusto. Finora mi sono stati consigliati Ruby e F#, e quest'ultimo mi è sembrato molto interessante. Tuttavia non ho trovato su internet nessuna guida che mi soddisfacesse (al momento preferirei evitare di acquistare manuali più o meno costosi, a favore di materiale libero). Quindi vorrei chiedere a voi un consiglio sia sul linguaggio che su un buon libro/dispensa (in italiano o inglese che sia) da cui imparare.
I linguaggi che attualmente conosco sono il C ed il Python, se può servire come informazione.
Grazie a tutti!

Ultimamente sono stato incuriosito dalla programmazione funzionale, e vorrei cominciare a studiarla partendo dal linguaggio giusto. Finora mi sono stati consigliati Ruby e F#, e quest'ultimo mi è sembrato molto interessante. Tuttavia non ho trovato su internet nessuna guida che mi soddisfacesse (al momento preferirei evitare di acquistare manuali più o meno costosi, a favore di materiale libero). Quindi vorrei chiedere a voi un consiglio sia sul linguaggio che su un buon libro/dispensa (in italiano o inglese che sia) da cui imparare.
I linguaggi che attualmente conosco sono il C ed il Python, se può servire come informazione.
Grazie a tutti!
Risposte
Ruby non lo definirei funzionale.. E' infatti principalmente un linguaggio ad oggetti a cui si aggiungono alcune funzionalità tipiche di altri paradigmi. Anche C++ o C# o Java o Python* hanno con il tempo introdotto alcune di queste funzionalità. F# è certamente un linguaggio funzionale invece. E' basato su OCaml, ma ha accesso alle librerie del framework .NET. Oltre al già citato OCaml c'è poi Haskell che a differenza di OCaml e F# è puro. Non è cioè possibile (se non attraverso meccanismi particolari) avere side-effects nelle funzioni. Ci sono poi Erlang, che è stato principalmente inventato per la programmazione parallela (è stato progettato per scrivere programmi che dovevano funzionare su switch telefonici), Lisp (un po' il padre di tutti questi), Scala..
C'è insomma l'imbarazzo della scelta. Il mio consiglio è quello di andare un po' sui siti di questi linguaggi, guardare su wikipedia o altro e poi scegliere quello che più ti piace.
* In effetti in Python uso molto di più la programmazione funzionale di quella ad oggetti.
C'è insomma l'imbarazzo della scelta. Il mio consiglio è quello di andare un po' sui siti di questi linguaggi, guardare su wikipedia o altro e poi scegliere quello che più ti piace.
* In effetti in Python uso molto di più la programmazione funzionale di quella ad oggetti.
Va bene, grazie del consiglio 
Per quanto riguarda la programmazione funzionale in Python, sapresti in caso indicarmi una buona guida introduttiva?

Per quanto riguarda la programmazione funzionale in Python, sapresti in caso indicarmi una buona guida introduttiva?
No, mi dispiace. Essendomi avvicinato alla programmazione funzionale da altri linguaggi non ho mai cercato una guida introduttiva per Python. Con una ricerca con Google ho trovato che c'è un manuale della O'Reilly. Altrimenti puoi cercare semplici guide e articoli online. Per esempio ho trovato questo che non sembra fatto male. Dipende comunque ovviamente quali siano i tuoi obiettivi a riguardo.
Grazie mille per il link!