fad*_*bee 9 monads haskell state-monad
我只是在学习Haskell,并试图找出实现视线算法的最惯用的方法.
我发现的演示代码使用状态monad,但对我来说(我只是初学者)递归传递状态似乎更简单.我在这里错过了什么?有性能问题吗?
查找代码:http://www.finalcog.com/bresenham-algorithm-idiomatic-haskell
谢谢,
克里斯.
Mac*_*cke 12
在任何地方传递状态都会变得有点冗长.此外,状态monad是大多数haskell编码器所熟知的,所以他们会知道你在做什么.如果您在monad之外手动滚动自己,那么辨别代码的作用可能会很棘手.
我发现状态monad整齐地用于封装状态变化,很明显你的代码的哪一部分是有状态的(即改变或依赖于状态)和其他纯粹的东西.