haskell - 我将如何想象 Haskell 中基于像素的渲染?

标签 haskell bitmap rendering sprite side-effects

想象一下一个命令式渲染引擎,它将 Sprite blits 到稍后显示的位图。这在很大程度上依赖于有效地改变所述位图中的单个像素的能力。我将如何在没有副作用的情况下做这样的事情?我猜需要一个完全不同的数据结构?

最佳答案

您可以将任何使用可变状态的算法转换为将状态与其一起“串起来”的算法。 Haskell 提供了一种这样做的方法,它仍然感觉像使用状态 Monad 进行命令式编程。

虽然,在我看来,基本的 blit 操作可以以更实用的方式完成。您基本上是通过逐像素操作组合两个位图以生成新位图。这对我来说听起来很实用。

高质量的命令式代码通常比好的函数式代码更快,但如果你愿意放弃一点速度,你通常可以以纯函数式风格创建非常好的架构

关于haskell - 我将如何想象 Haskell 中基于像素的渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7289199/

相关文章:

android - 将 Canvas 转换为位图 Android - 黑色背景

android - 在设备上创建位图时内存不足

haskell - 为新类型重用 MArray 实例

haskell - 使用不同参数调用时模板 Haskell 编译错误

android - 如何传递位图参数?

c# - 在代码中从 .rdlc 导出 PDF 时,如何提高 LocalReport.Render 方法的性能?

java.lang.ClassNotFoundException : android. 支持.v4.view.TintableBackgroundView

c++ - Autocad 怎么能这么快的平移和缩放?

haskell - 持久性:如何让 I 处于 ACID 状态

haskell - YesodAuth Google OAuth2 超时