Mi consejo sería no buscar algo relacionado con la programación orientada a objetos. En su lugar, intente aprender todo desde cero, olvidando todos sus hábitos imperativos y OO tanto como pueda.
Se trata de la mentalidad: ven a la programación funcional con una mente abierta. Obtendrá mucho más de la experiencia que si intenta forzar la programación funcional en un molde orientado a objetos.
Para esto, casi cualquier buen libro o tutorial ayudará. Soy un fan de:
- Estructura e interpretación de programas informáticos. (y echa un vistazo a las conferencias en línea)
- ¡Aprende un Haskell para un gran bien!
- Escríbase un esquema en 48 horas (un gran seguimiento para el SICP)
- Haskell del mundo real
Esta lista usa Scheme y Haskell en lugar de Clojure y Scala.
- ¿Cuáles son los mejores recursos para aprender portugués europeo?
- ¿Cuáles son algunos recursos para aprender a editar?
- Soy ingeniero mecánico interesado en la visión por computador. Estoy tratando de desarrollar los fundamentos y las señales y sistemas terminados y el procesamiento de señales digitales. ¿Alguien puede recomendar un recurso para cerrar la brecha entre DSP y CV?
- ¿Qué taxonomía de aprendizaje es apropiada para el estudio de la historia?
- ¿Cuál es una buena fuente de conocimiento sobre estructuras y algoritmos de datos avanzados o poco comunes?
Scheme tiene la ventaja de ser extremadamente simple: no solo es rápido de asimilar, sino que es fácil de implementar. Escribir un intérprete de Scheme en Scheme o Haskell es una excelente manera de conocer ambos idiomas y de tener una intuición completa para la programación funcional.
Haskell tiene la ventaja de ser un lenguaje funcional primero y en mucho mayor grado que Scala o incluso Clojure. Muestra los beneficios de la programación funcional mucho más allá de lo que es posible en la mayoría de los otros idiomas. Además de esto, es una excelente manera de hacerte pensar funcionalmente porque no puedes simplemente volver a los imperativos instintivos o los hábitos OO.
Por supuesto, en última instancia, no se trata de los idiomas individuales sino de las ideas fundamentales. Y creo que este conjunto de libros proporciona tanto una base muy completa en estos fundamentos como el conocimiento práctico suficiente para establecer sus propios proyectos una vez que esté listo.