如何使用 jhc 将 haskell 定位到 android?

how to target haskell to android using jhc?

我想编写一个 Haskell 类型的函数(模块):String -> String 以调用 Android。最简单的方法似乎是使用JHC生成C代码,然后使用Android NDK生成共享库,但我找不到任何关于JHC的文档。 JHC 是否也使用 Cabal 来构建? JHC 是否足够稳定以使用 Parsec 或 Attoparsec 库?

早在 2011 年,我以类似的方式使用 JHC 取得了有限的成功,但目标是 iOS 而不是 Android。 Initial results were good 刚刚得到 运行,但我们最终放弃了 JHC 而选择了 GHC,正是因为我们开始在使用 Parsec 的程序上出现奇怪的编译时错误。请记住,这是在 2011 年,所以 JHC 从那以后可能已经有了很大改进。

如果你想给 GHC 一个机会,我推荐 looking at this example,它使用 GHC 7.8 为 Android 编译游戏。我还没有愤怒地使用它,但我确实设法让它在 Docker 上运行,从头开始重建游戏并将其安装在真正的 Android 设备上,所以方法绝对有优点。

截至 2017 年 8 月的更新: Moritz Angermann 已发布 detailed instructions on targeting Android with a GHC cross-compiler

好吧a compiler called eta也许是最方便的方法now.it以jvm为目标,它会生成一个jar文件,所以你可以直接把它放在你的项目中