2008-08-22 12 views
54

Mi piace studiare le lingue al di fuori della mia zona di comfort, ma ho avuto difficoltà a trovare un punto di partenza per le lingue funzionali. Ho sentito un sacco di cose positive su Structure and Interpretations of Computer Programs, ma quando ho provato a leggerlo un paio di anni fa mi è sembrato di sorvolare. Faccio molto meglio con i libri che con i siti web, ma quando visito il negozio di libri locale i libri su LISP sembrano un po 'spaventosi.Qual è un buon testo di inizio sulla programmazione funzionale?

Quindi, qual è un buon punto di partenza? Il mio obiettivo è essere in grado di utilizzare un linguaggio di programmazione funzionale per risolvere problemi semplici in 6 mesi o giù di lì, e la possibilità di passare a argomenti più avanzati, riconoscere quando una lingua funzionale è lo strumento giusto per il lavoro e usare la lingua per risolvere più problemi nel corso di 2-3 anni. Mi piacciono i libri che sono pesanti sugli esempi ma includono anche le sfide da affrontare. Esiste una cosa del genere per le lingue funzionali?

+10

il tuo negozio di libri ha in realtà i libri sul Lisp? –

+1

un negozio di computer libro che ho visitato la scorsa settimana ha avuto 'Land of Lisp', 'Practical Common Lisp' e 'SICP'. .. –

risposta

4

Ho trovato The Little Schemer una grande, ottima introduzione alla programmazione funzionale. È interamente basato su semplici esempi di morsi su cui si basa il libro.

2

Haskell è un ottimo linguaggio di programmazione funzionale per i principianti. Qualcuno mi ha chiesto delle buone risorse per Haskell, quindi ti indicherò there.

Se stai cercando un buon libro sulla programmazione funzionale, ti consiglio "Programmazione funzionale: pratica e teoria" di Bruce J. Maclennan.
Tuttavia è necessario rispolverare la Teoria e la logica dell'insieme prima di dargli una lettura. Include esempi in LISP, Haskell e altre lingue.

1

Se si dispone di esperienza con .NET, Expert #F è buono.

F # è derivato da OCaml. Lisp è più puro come le lingue funzionali vanno.

+2

Non penso di c onsider Lisp più puro di OCaml. La maggior parte dei Lisp non fa nulla per impedirti di mutare. D'altro canto, OCaml rende impossibile modificare le variabili a meno che non le dichiari come mutabili. – apg

15

SICP è un ottimo libro.

Questo è probabilmente il mio pregiudizio, ma ho pensato che ocaml fosse abbastanza facile da ottenere. Hai la possibilità di programmare in pochi stili diversi finché non ti senti completamente a tuo agio. I posted a bunch of links a riferimenti Haskell e Ocaml che sono libri, con esempi eccetera che sembrano proprio il tuo vicolo.

Se preferite Lisp, si può provare a potere attraverso il 99-problems in Lisp (che si può fare in qualsiasi lingua, in realtà), oppure si può guardare il lectures dalle persone che hanno scritto SICP.

Più in fondo alla strada, prendi una pausa di "Purely Functional Data Structures", dato che entrerà nella progettazione profonda dell'hard-core e considerazioni che devi prendere in considerazione nei linguaggi funzionali - usa ML (quale ocaml derivato da).

+0

Sto leggendo SICP ora, ma non sono sicuro di cosa stai parlando di re: "il Lagrange"? Nella mia copia tascabile del 2 ° Ed l'unico riferimento a Lagrange nell'indice è questa nota a piè di pagina sull'interpolazione di Lagrange: http://www-mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html # footnote_Temp_299 – spacemanaki

+0

Quelle parti si riferivano a SICM (Struttura e interpretazione della meccanica classica), mio ​​errore. – nlucaroni

0

Ho sentito parlare di Haskell Functional Programming, ma ho trovato anche questo list di libri di programmazione funzionale su Amazon che potrebbero essere utili a voi.

5

Mi piace molto "Haskell: Il mestiere della programmazione funzionale" di Thompson perché è ben scritto e Haskell consente un avvio più semplice rispetto ad altri linguaggi funzionali pur essendo completamente puro (a differenza di Lisp o Scheme).

+0

+1, Il libro ha anche molti esercizi eccellenti poiché è stato scritto principalmente come un libro di testo. Le spiegazioni e la narrativa rendono anche il libro una buona scelta. –

5

Dato che ci sono diversi linguaggi di programmazione funzionale, è difficile consigliare i libri. Ma se sei interessato a Common Lisp, recentemente ho letto "Practical Common Lisp" di Peter Seibel, che puoi check out online for free prima di lasciar cadere il tuo sudato denaro. È una introduzione piuttosto gentile a CL, con grandi spiegazioni e tonnellate di esempi. Seibel è un grande scrittore (esempio: leggi the story of Mac,) è bravo a tenerti impegnato, che è davvero il punto in cui la SICP cade, credo. È così asciutto! Ma mentre Practical Common Lisp è piuttosto ricco di esempi, non ha davvero delle sfide da superare, anche se gli esempi sono progettati principalmente per permetterti di continuare a lavorare e costruire su di essi.

Un altro buon libro, questo orientato allo schema: How to Design Programs. (Online) Non ho avuto più tempo con questo libro, essendo più un Lisper che un Schemer, ma è ben scritto, ha buone spiegazioni ed esempi e ha molti esercizi su cui lavorare. Sembra piuttosto popolare nella folla Scheme.

4

Ho imparato da Jeffrey Ullman Elementi di programmazione ML, che è piuttosto buono. Perde punti riguardo allo standard ML, quando OCaml, F # e Haskell sono (apparentemente) più popolari.

11

Consiglio vivamente "On Lisp" da Paul Graham.

È conciso e molto leggibile anche per i principianti nella programmazione funzionale (come lo ero quando l'ho letto). Contiene molti esempi molto brevi, ognuno dei quali aiuta a capire una singola cosa.

Ho pensato spesso di leggere questo libro: questo è solo il linguaggio che contiene esattamente le caratteristiche che ho sempre desiderato in altre lingue (non funzionali), ma mai ricevuto. :-( E questo è esattamente il libro per imparare, sempre comprensibili, a volte anche divertente!

Si può ottenere gratuitamente presso the author's site!

Problemi correlati