functional-programming - medium - functional programming python
¿Cuáles son algunos ejemplos impresionantes de código funcional? (7)
Este video (largo, pero muy bueno) ofrece tanto una introducción a F # como una demostración convincente de lo fácil que es paralelizar el código en el idioma:
Me estoy cansando de tener que codificar explícitamente para multinúcleo si quiero más velocidad, particularmente cuando estoy escribiendo un guión único. Mi cuadro dev ya tiene 8 núcleos y ese número sube mucho más rápido que la velocidad del reloj. Los lenguajes funcionales parecen ofrecer una vía de escape potencial, pero aún no me he esforzado por dominar uno de ellos.
Me encantaría ver algunos trozos de muestra del código del mundo real que son mucho mejores y / o más paralelables que las alternativas no funcionales. No soy exigente con el idioma, estoy más interesado en los conceptos.
¡Gracias!
Su pregunta es solicitar material en el estado del arte. Creo que su mejor introducción a este campo, con ejemplos, es el libro Programación paralela implícita en pH de Nikhil y Arvind.
¿Qué hay de MapReduce ? Es increíblemente paralelizable y, aunque no está implementado en lenguajes funcionales en lo que respecta al papel, está inspirado en el map
de Lisp y se reduce
.
Hay un ejemplo extendido de un indexador / buscador de texto usando mapreduce en el Capítulo 20 ("Programación de CPU multi-core") de Programming Erlang . No sé cuán impresionante es eso, pero parece que los mortales pueden escribir.
LINQ es un buen ejemplo de programación funcional en los principales lenguajes. Código reificado y mónadas En MI C #? :) De todos modos, wrt threading, hay mención de Parallel LINQ . Al usar inmutabilidad y funciones de orden superior (y Expresión, tal vez), las bibliotecas pueden paralelizar las cosas para nosotros.
Y otro enlace a F # con flujos de trabajo asincrónicos . Lo que es impresionante es la capacidad de tomar el código de sincronización, y con algunas pequeñas anotaciones convertirlo en código asíncrono. El código conserva muchas de las cualidades imperativas que podrías estar usando. No tiene que cambiar completamente las cosas para aprovechar esto; el compilador lo maneja todo.
Un maestro mío solía bromear diciendo que el mejor ejemplo de código funcional es el código que no está escrito.
Estructuras de datos puramente funcionales (PDF largo), por Chris Okasaki.