我想写一个类型为String -> String
的Haskell函数(模块)来调用Android。最简单的方法似乎是使用JHC生成C代码,然后使用Android NDK生成共享库,但我找不到任何JHC文档。 JHC是否也使用Cabal来构建? JHC是否足够稳定以使用Parsec或Attoparsec库?
答案 0 :(得分:3)
早在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。
答案 1 :(得分:0)
好a compiler called eta也许是现在最方便的方式。它以jvm为目标,它会产生一个jar文件,所以你可以直接把它放在你的项目中