Con todo el bombo en torno a la programación funcional, ¿cuáles son los mejores recursos para comenzar con la programación funcional [para un programador C#]? No estoy buscando mejoras de lenguaje C# 3.0.¿Cómo puedo comenzar con la programación funcional?
Respuesta
Creo que para un desarrollador de C# con fondo .NET, la mejor forma de ingresar a la programación funcional es aprender F #.
Aprendí programación funcional en la universidad, usando el lenguaje Haskell.
En su página de inicio es muy probable que encuentre lo que necesita para empezar :)
Por cierto, se necesita mucha práctica para ver la solución; los algoritmos, como tales, no son lo que todos usan para codificar en lenguajes orientados a objetos, lógicos o de procedimientos.
Dedique un tiempo a mirar Lisp o Scheme, ya que son la madre y el padre de la programación funcional. PLT Scheme es un excelente entorno para jugar con Scheme. Obtenga una copia de The Little Schemer ya que es una buena introducción a Scheme y lo ayudará a ponerse al día con bastante rapidez.
Una vez que tenga su cabeza funcional, intente hacer algunos de los problemas Project Euler de una manera funcional.
Elija un lenguaje funcional. Python tiene muchas funciones funcionales. Haskell es puramente funcional.
Ve a Project Euler.
Resuelve algunos problemas.
Si mira el Proyecto Euler stats, Python y Haskell están muy bien clasificados.
Editar
programación funcional en 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 a pesar del conector de Python (¿es así que NO funciona :) :) –
@OJ: Se agregaron referencias de personas que parecen pensar que Python sí admite la programación funcional. –
De acuerdo, Python no es un lenguaje de programación funcional, pero sí tiene funciones funcionales. Esta es una publicación anterior, y aprecio que S.Lott haya escrito un libro sobre el tema. Aún así, no se ha escrito una biblioteca funcional de terceros para Python que encuentro un poco decepcionante. Seguro que ha habido varios intentos y contribuciones, pero nada se ha afianzado de la misma manera que las bibliotecas JS para EcmaScript, etc. – arcseldon
Estoy de acuerdo con Mehrdad Afshari. Si está familiarizado con C#, inicie la programación funcional con F #. La sintaxis es similar a las expresiones lambda en C#.
Tapón desvergonzado: soy el coautor (bueno, editor glorificado realmente :) de Real World Functional Programming. Está dirigido directamente a personas como usted. Enseña los principios de la programación funcional, principalmente a través de F #, y también muestra cómo se pueden aplicar los mismos principios en muchos casos en C#.
Asume que ya conoce C#, pero introduce F # desde cero.Te da suficiente conocimiento de F # para que comiences para que puedas experimentar, pero el objetivo es enseñar una forma funcional de pensar en lugar de entrar en cada rincón de F # como lenguaje. (En otras palabras, si desea comenzar a usar F # como lenguaje de producción, obtendría otro libro y.)
Aún no ha salido, pero puede obtener acceso anticipado a través del programa MEAP. Varios capítulos ya están disponibles, y pronto habrá más.
¿Alguna sugerencia para otros recursos hasta que se publique la versión en madera muerta de ese libro? – suhair
Si está interesado en la madera muerta en lugar del ebook, hay dos libros de Apress F: Fundamentos de F # (Robert Pickering) y Expert F # (Don Symes) –
. Estoy leyendo la sección gratuita de este sitio de Manning - cosas muy interesantes y está bien escrito. Una cosa pequeña: la página 16 tiene "El código primero crea una lista temporal para almacenar todos los caracteres muertos." - podría hacer con una edición de Jon! –
La versión gratuita en línea de Real World Haskell es una forma buena y económica de comenzar.
Una vez que haya realizado algunos capítulos, podrá decidir si FP es para usted y si desea continuar con Haskell o cambiar a otro idioma. Incluso puede ir a comprar la versión de árbol muerto (como yo lo hice).
Los paradigmas que aprende de este libro, especialmente los capítulos de apertura, se aplican igualmente a otros lenguajes funcionales. (Me gusta pensar que mi Javascript y Groovy se beneficiaron de mi estudio de Haskell).
Hasta ahora me ha gustado learn you a haskell, es bastante bueno para los principiantes.
- 1. Programación funcional aplicada
- 2. ¿Cómo comenzar con la programación de la interfaz de hardware?
- 3. Comenzar con la Programación de restricciones
- 4. Programación funcional en C++
- 5. ¿Cómo puedo comenzar con SharpSVN?
- 6. cómo comenzar la programación de redes neuronales
- 7. programación funcional en Java
- 8. Cómo comenzar con la programación de juegos en el Zune
- 9. Programación funcional: Efectos secundarios
- 10. Documentación de programación funcional
- 11. Arquitectura de programación funcional
- 12. Haskell - Programación funcional Ayuda
- 13. SÓLIDO para programación funcional
- 14. ¿Cómo puedo usar programación funcional en el mundo real?
- 15. Comentarios adecuados para la programación funcional
- 16. Punto de definición de la programación funcional
- 17. ¿La programación funcional es un subconjunto de la programación imperativa?
- 18. Programación funcional pura para la GPU
- 19. Programación funcional: Mejor plataforma/Entorno
- 20. ¿Cómo puedo comenzar con Emacs + fcsh + Flex3?
- 21. Acerca de la programación de estilo funcional
- 22. ¿Por qué es buena la programación funcional?
- 23. Errores/Desventajas de la Programación Funcional
- 24. Programación funcional pura en D
- 25. ¿Qué es zip (programación funcional?)
- 26. ¿Cómo puedo comenzar con Spring Batch?
- 27. Esquema de programación (Racket) con VIM - Cómo comenzar
- 28. Programación funcional en plantas nucleares?
- 29. ¿Cómo comenzar con NOSQL usando los lenguajes de programación .net?
- 30. ¿Cómo se aplica la programación funcional a las simulaciones?
Finalmente tengo suficientes motivaciones para probar F # en lugar de Haskell. Gracias – suhair