2012-03-11 16 views
7

Estoy escribiendo algunos materiales de lección para un curso que comienza en un par de semanas. Elegí Clojure como un nuevo idioma para que los estudiantes aprendan. Me gustaría dedicar un capítulo a refactorizar el código imperativo al código funcional. Para esto, me gustaría tener un conjunto de problemas prácticos que no sean exagerados, con los que pueda mostrar cómo se comparan las soluciones imperativas y funcionales. Preferiblemente los problemas NO tienen un énfasis en las matemáticas, como el proyecto Euler, pero son problemas con los que un programador promedio necesita lidiar regularmente. ¿Quién tiene algunas buenas fuentes para esto?Buenos ejemplos de soluciones imperativas versus funcionales para problemas prácticos

Respuesta parcial: una de esas fuentes es http://langref.org/. Más querido!

Respuesta

5

Aunque no es realmente práctico (porque los problemas prácticos lo suficientemente cortos como para presentarse en una clase tienden a ser un poco aburridos), programar el Juego de la vida es una de mis formas favoritas de aprender un nuevo idioma. Como beneficio adicional, el enfoque funcional es bastante diferente (y más elegante) que las soluciones imperativas. Además, cualquier tipo de problema en el que esté manipulando secuencias de datos (por ejemplo, analizar una secuencia de tweets para la frecuencia de palabras, o algo así) lo convierte en ejemplos geniales.

3

Es una castaña antigua, pero la simple implementación de una función factorial de diferentes maneras es bastante esclarecedora. Otro ejemplo común es un generador de números primos, que puede ser un poco más grande.

Me doy cuenta de que ambos ejemplos son matemáticos, pero solo requieren conocimientos básicos.

Cuestiones relacionadas