2009-03-12 12 views

risposta

11

Penso che per uno sviluppatore C# con background .NET, il modo migliore per accedere alla programmazione funzionale sia imparare F #.

+0

Infine ho abbastanza motivazioni per provare F # invece di Haskell. Grazie – suhair

0

Ho imparato la programmazione funzionale al college, utilizzando il linguaggio Haskell.

Nella sua home page è più probabile trovare ciò che serve per iniziare :)

BTW, ci vuole un sacco di pratica per vedere la soluzione; gli algoritmi, in quanto tali, non sono ciò che tutti sono abituati a codificare in linguaggi orientati agli oggetti, logici o procedurali.

2

Passa un po 'di tempo a guardare Lisp o Scheme dato che sono la madre e il padre della programmazione funzionale. PLT Scheme è un ottimo ambiente per giocare con Scheme. Procurati una copia di The Little Schemer in quanto è una buona introduzione a Scheme e ti aiuterà ad accelerare abbastanza rapidamente.

Una volta che hai capito come funziona, prova a fare alcuni dei problemi Project Euler in modo funzionale.

4
+0

+1 nonostante il plug-in Python (è così NON funzionante :)) –

+0

@ OJ: aggiunti riferimenti da persone che sembrano pensare che Python supporti la programmazione funzionale. –

+0

Concordato, Python non è un linguaggio di programmazione funzionale, ma ha caratteristiche funzionali. Questo è un vecchio post e apprezzo che S.Lott abbia da allora scritto un libro sull'argomento. Ancora, non è stata scritta alcuna libreria funzionale di terze parti per Python, che trovo leggermente deludente. Sicuramente ci sono stati vari tentativi e contributi, ma nulla ha preso piede allo stesso modo delle librerie JS per EcmaScript, ecc. – arcseldon

0

Sono d'accordo con Mehrdad Afshari. Se hai familiarità con C# avvia la programmazione funzionale con F #. La sintassi è simile alle espressioni lambda in C#.

12

Plug vergognoso: sono il coautore (beh, redattore glorificato in realtà :) di Real World Functional Programming. Si rivolge direttamente a persone come te. Insegna i principi della programmazione funzionale, principalmente tramite F #, e mostra anche come è possibile applicare gli stessi principi in molti casi in C#.

Presuppone che tu conosca già C#, ma introduce F # da zero.Ti dà abbastanza conoscenza di F # per iniziare in modo da poter sperimentare, ma l'obiettivo è quello di insegnare un modo di pensare funzionale piuttosto che andare in ogni angolo di F # come lingua. (In altre parole, se si desidera iniziare a utilizzare F # come linguaggio di produzione, otterrei un altro libro e.)

Non è ancora disponibile, ma è possibile ottenere l'accesso anticipato tramite il programma MEAP. Diversi capitoli sono già disponibili, con altri in arrivo.

+0

Qualche suggerimento per altre risorse fino a quando la versione dead wood di quel libro non verrà rilasciata? – suhair

+0

Se sei appassionato di legno morto piuttosto che di ebook, ci sono due libri di Apress F #: Fondamenti di F # (Robert Pickering) e Expert F # (Don Symes) –

+0

Sto solo leggendo la sezione gratuita di questo dal sito di Manning - roba molto interessante ed è ben scritta. Una piccola cosa: Pagina 16 ha "Il codice prima crea un elenco temporaneo per memorizzare tutti i personaggi morti". - Potrebbe fare con un edit Jon! –

3

La versione online gratuita di Real World Haskell è un buon modo economico per iniziare.

Una volta completati alcuni capitoli, sarete in grado di decidere se FP è per voi e se volete continuare con Haskell o passare ad un'altra lingua. Potresti anche andare a comprare la versione ad albero morto (come ho fatto io).

I paradigmi che apprendi da questo libro, in particolare i capitoli iniziali, si applicano ugualmente bene ad altri linguaggi funzionali. (Mi piace pensare che Javascript e Groovy abbiano tratto beneficio dal mio studio di Haskell).

Problemi correlati