我正在使用 2D 图形构建一个简单的交互式程序,我想知道 Haskell 库的哪种组合可能会起作用。到目前为止,我的要求和想法如下:
基本要求:
- 简单的二维几何绘图,由Gloss或Diagrams提供
- SVG 风格的交互性:例如,玩拼图游戏或十五个游戏,能够单击一个对象,也可以在画布上拖动它。
- (后备:使用键盘导航来移动图像,激活对象等)
诱导要求:
- 我更喜欢在FP Haskell Center工作,这意味着我的 UI 应该是一个 Web 应用程序(使用 Yesod/Snap/Happstack)。
如果是 Web 应用程序,它可以是“图像地图”样式,其中每次交互都涉及到服务器的往返,或者是 Javascript 样式,如Fay或Elm
非要求:
- 这是一个独立的“玩具”(如七巧板或拼图游戏),因此它不需要数据库中的任何持久状态
我的想法:
任何人都可以建议一组可能适用于这个 UI 的包和架构风格吗?我目前的想法是:
Yesod 使用 {Gloss or Diagrams} 在 FP Haskell Center 中绘制静态图形。
- 然后切换到本地开发,添加本地原生鼠标点击交互。
- 或者使用一些 Ajax 解决方案将点击事件发送回服务器以更新图形
带有反应图形的 Elm,没有 FP Haskell Center
交互式 Javascript 体验,用 Fay 编写,编译为 Javascript。(我没用过Fay,不知道能不能依赖很多Hackage包,我知道它不支持一些扩展,但不知道能不能使用依赖那些扩展的预编译包)
Elm 和 Fay 看起来很相似,主要区别在于:
- (a) Elm 实际上并不是 Haskell
- (b) Fay 不强制执行 FRP 样式?
有什么建议吗?