我只是学习Haskell,并试图找出实现视线算法的最惯用的方式。

在演示代码,我发现使用状态单子,但它似乎更简单的给我(我只是一个初学者)递归地传递状态。我缺少的是在这里吗?是否有性能问题?

http://www.finalcog.com/bresenham-algorithm-:在

查找代码惯用-Haskell的

谢谢,

克里斯。

有帮助吗?

解决方案

它可以成为有点冗长到处传递状态。此外,国家单子深受大多数Haskell的程序员知道,这样他们就会知道你在做什么。如果你手工滚你自己,一个单子外,它可能会非常棘手辨别你的代码做什么。

我找到状态单子整齐封装状态的变化,这是很明显你的代码的一部分是有状态(即变造或者依赖于状态)w.r.t.其余部分的纯的东西。

其他提示

对于较大的程序,这是更好地隐藏在单子的状态传递管道。有错误的风险更小,然后

使用单子到导通状态传递,而不是传递状态明确的优点是,就表示该可以使用的单子定义许多有用的组合程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top