Con tutto il clamore intorno alla programmazione funzionale, quali sono le migliori risorse per iniziare nella programmazione funzionale [per un programmatore C#]? Non sto cercando miglioramenti del linguaggio C# 3.0.Come posso iniziare con la programmazione funzionale?
risposta
Penso che per uno sviluppatore C# con background .NET, il modo migliore per accedere alla programmazione funzionale sia imparare F #.
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.
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.
Scegliere una lingua funzionale. Python ha molte funzionalità. Haskell è puramente funzionale.
Vai a Project Euler.
Risolvere alcuni problemi.
Se si guarda al Project Euler stats, Python e Haskell sono molto classificati.
Modifica
programmazione funzionale in Python:
- http://www.ibm.com/developerworks/library/l-prog.html
- http://www.amk.ca/python/writing/functional
- http://linuxgazette.net/109/pramode.html
- http://www.slideshare.net/adambyrtek/functional-programming-with-python-516744
- http://scott.andstuff.org/FunctionalPython
- http://docs.python.org/tutorial/datastructures.html#functional-programming-tools
- http://www.freenetpages.co.uk/hp/alan.gauld/tutfctnl.htm
+1 nonostante il plug-in Python (è così NON funzionante :)) –
@ OJ: aggiunti riferimenti da persone che sembrano pensare che Python supporti la programmazione funzionale. –
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
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#.
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.
Qualche suggerimento per altre risorse fino a quando la versione dead wood di quel libro non verrà rilasciata? – suhair
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) –
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! –
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).
Mi è piaciuto learn you a haskell finora, è abbastanza buono per i principianti.
- 1. Come iniziare con la programmazione dell'interfaccia hardware?
- 2. Iniziare con la programmazione parallela
- 3. Come iniziare la programmazione VOIP?
- 4. Macchina per la programmazione funzionale
- 5. Modelli aziendali con programmazione funzionale
- 6. La programmazione funzionale deve essere insegnata prima della programmazione imperativa?
- 7. test in programmazione funzionale
- 8. Comprendere la sequenza nella programmazione funzionale
- 9. Programmazione guidata evento funzionale
- 10. Come iniziare con la programmazione del kernel di Windows?
- 11. Commenti corretti per la programmazione funzionale
- 12. programmazione funzionale in R
- 13. Come posso iniziare con SharpSVN?
- 14. È la programmazione reattiva funzionale AngularJS?
- 15. Elaborazione batch e programmazione funzionale
- 16. Confusione funzione di programmazione funzionale
- 17. Quale linguaggio di programmazione funzionale dovrei scegliere come primo linguaggio di programmazione funzionale?
- 18. Haskell - Guida alla programmazione funzionale
- 19. Come implementeresti un linguaggio di programmazione funzionale?
- 20. Programmazione pura funzionale alla GPU
- 21. Qual è zip (programmazione funzionale?)
- 22. multithread programmazione funzionale a Swift
- 23. snippet di programmazione funzionale Python
- 24. Programmazione reattiva funzionale in Scala
- 25. Linguaggi di programmazione funzionale introspezione
- 26. ciclo infinito nella programmazione funzionale?
- 27. Programmazione funzionale in C/C++?
- 28. Programmazione funzionale negli impianti nucleari?
- 29. Come posso iniziare con Emacs + fcsh + Flex3?
- 30. Come posso iniziare con PhoneGap in Eclipse?
Infine ho abbastanza motivazioni per provare F # invece di Haskell. Grazie – suhair