它是更好地使用国家单子,或者通过递归状态?
-
12-09-2019 - |
题
我只是学习Haskell,并试图找出实现视线算法的最惯用的方式。
在演示代码,我发现使用状态单子,但它似乎更简单的给我(我只是一个初学者)递归地传递状态。我缺少的是在这里吗?是否有性能问题?
http://www.finalcog.com/bresenham-algorithm-:在查找代码惯用-Haskell的
谢谢,
克里斯。
解决方案
它可以成为有点冗长到处传递状态。此外,国家单子深受大多数Haskell的程序员知道,这样他们就会知道你在做什么。如果你手工滚你自己,一个单子外,它可能会非常棘手辨别你的代码做什么。
我找到状态单子整齐封装状态的变化,这是很明显你的代码的一部分是有状态(即变造或者依赖于状态)w.r.t.其余部分的纯的东西。
其他提示
对于较大的程序,这是更好地隐藏在单子的状态传递管道。有错误的风险更小,然后
使用单子到导通状态传递,而不是传递状态明确的优点是,就表示该可以使用的单子定义许多有用的组合程序。
不隶属于 StackOverflow