我不是在寻找具有 10 年跟踪记录的必然超级稳健的解决方案,而是寻找可以在实际应用程序中使用的东西,并且不仅仅是能够运行 Hello World 示例。
我的偏好是在服务器上运行编译器,这样我就可以提前编译 Haskell 代码。当然,解决方案需要的不仅仅是一个编译器,还需要让 Haskell 代码能够访问浏览器上可用的 API(DOM、XHR ……)。
脚注:到目前为止我所看到的项目似乎没有得到积极维护,或者超出了能够运行“Hello world”的能力,或者在某些情况下甚至超出了项目描述。
我不是在寻找具有 10 年跟踪记录的必然超级稳健的解决方案,而是寻找可以在实际应用程序中使用的东西,并且不仅仅是能够运行 Hello World 示例。
我的偏好是在服务器上运行编译器,这样我就可以提前编译 Haskell 代码。当然,解决方案需要的不仅仅是一个编译器,还需要让 Haskell 代码能够访问浏览器上可用的 API(DOM、XHR ……)。
脚注:到目前为止我所看到的项目似乎没有得到积极维护,或者超出了能够运行“Hello world”的能力,或者在某些情况下甚至超出了项目描述。
您可能会发现此列表很有用: https ://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS
从列表中:
* UHC (Utrecht Haskell Compiler) backend converts UHC core to JavaScript, allowing the compiling of Haskell code to JS.
* YHC (York Haskell Compiler) backend, as above but with YHC core language.
* jshaskell
我知道它不是 Haskell,而是 Coffee 脚本是基于表达式的并且相当优雅的恕我直言。
我偶然发现了这个名为ghcjs的项目
看起来很有希望!
引用自README:
Haskell 到 Javascript 翻译器
项目旨在提供解决方案
- 将现代 Haskell 库编译为 Javascript 文件并在 Ajax 应用程序中使用它们或
- 用 Haskell 语言开发整个 Ajax 应用程序
以前版本的项目位于vir.mskhug.ru。
虽然 GHCJS 似乎没有得到积极维护,但Emscripten似乎很流行。
我承认这是一篇投机文章。
这种语言Roy可能不是真正的 Haskell (?),但看起来非常相似:
罗伊似乎还活着;GitHub repo 中有很多分支:https
://github.com/pufuwozu/roy
,它似乎还活着:https ://github.com/pufuwozu/roy/graphs
如果您使用的是 Play Framework 2.0,那么有一个插件Ray可以在 Play Framework 2.0 上运行 Roy:
http://brianmckenna.org/blog/ray
https://github.com/pufuwozu/ray
最后一次提交是四个月前,这是相当长的时间,请记住 Play Framework 2 可能是在 4 或 5 个月前发布的。
Yesod 提供了一份“最高生产级别”的候选名单:https ://github.com/yesodweb/yesod/wiki/Javascript-Options (Yesod 是一个非常流行的 Haskell 网络框架,所以他们可能知道他们在说什么)