Pergunta

Estou aprendendo Haskell, e tentando descobrir a maneira mais idiomática de implementar uma linha de algoritmo de visão.

O código de demonstração eu achei usos a Mônada estado, mas parece mais simples para mim (eu sou apenas um iniciante) para passar do estado de forma recursiva. O que estou perdendo aqui? Existem problemas de desempenho?

Encontre código em: http://www.finalcog.com/bresenham-algorithm- idiomática-haskell

Obrigado,

Chris.

Foi útil?

Solução

Pode tornar-se um pouco detalhado para passar estado em todos os lugares. Além disso, a Mônada estado é bem conhecido pela maioria dos programadores de Haskell para que eles vão saber o que você está fazendo. Se você entregar-roll seu próprio, fora de uma mônada, pode ser difícil de discernir o que o código faz.

I encontrar o estado mônada puro para encapsular as mudanças de estado, é bastante óbvio que parte do seu código é stateful (ou seja, altera ou depende do estado) w.r.t. o resto do material puro.

Outras dicas

Para programas maiores, é melhor para esconder o encanamento estado passando a Mônada. Há menos risco de erro em seguida.

Uma vantagem de usar uma mônada passar estado ao invés de passar em estado explicitamente, é que há muitas combinators útil definida para mônadas que você pode usar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top