É melhor usar a Mônada Estado, ou para passar do estado de forma recursiva?
-
12-09-2019 - |
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.
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.