Pregunta

Estoy aprendiendo Haskell, y tratando de averiguar la manera más idiomática para implementar un algoritmo de línea de vista.

El código de demostración que encontré utiliza la mónada estado, pero parece más sencillo para mí (soy un principiante) para pasar del estado de forma recursiva. ¿Que me estoy perdiendo aqui? ¿Hay problemas de rendimiento?

Código encontrar en: http://www.finalcog.com/bresenham-algorithm- idiomático-Haskell

Gracias,

Chris.

¿Fue útil?

Solución

Puede llegar a ser un poco prolijo para pasar del estado en todas partes. Además, la mónada estado es bien conocido por la mayoría de los programadores de Haskell para que sepan lo que está haciendo. Si la mano-liar, fuera de una mónada, que puede ser difícil de discernir lo que hace el código.

Me parece la mónada estado limpio para encapsular los cambios de estado, que es bastante obvio lo que parte de su código es con estado (es decir, altera o depende del estado) w.r.t. el resto de las cosas pura.

Otros consejos

Para los programas más grandes, es mejor para ocultar el paso del estado de plomería en la mónada. Hay menos riesgo de error a continuación.

Una ventaja de utilizar una mónada de transmitir el estado en lugar de pasar sobre el estado de forma explícita, es que hay muchas combinadores útil definida para mónadas que se pueden utilizar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top