58

我不是在寻找具有 10 年跟踪记录的必然超级稳健的解决方案,而是寻找可以在实际应用程序中使用的东西,并且不仅仅是能够运行 Hello World 示例。

我的偏好是在服务器上运行编译器,这样我就可以提前编译 Haskell 代码。当然,解决方案需要的不仅仅是一个编译器,还需要让 Haskell 代码能够访问浏览器上可用的 API(DOM、XHR ……)。

脚注:到目前为止我所看到的项目似乎没有得到积极维护,或者超出了能够运行“Hello world”的能力,或者在某些情况下甚至超出了项目描述。

4

6 回答 6

21

这里有一个更完整的列表:

http://www.haskell.org/haskellwiki/The_JavaScript_Problem

还有Fay(虽然只是haskell的一个子集)

https://github.com/faylang/fay

于 2012-05-14T12:51:19.913 回答
9

您可能会发现此列表很有用: https ://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-c​​ompile-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 脚本是基于表达式的并且相当优雅的恕我直言。

于 2011-06-07T22:31:09.803 回答
9

我偶然发现了这个名为ghcjs的项目

看起来很有希望!

引用自README

Haskell 到 Javascript 翻译器

项目旨在提供解决方案

  • 将现代 Haskell 库编译为 Javascript 文件并在 Ajax 应用程序中使用它们或
  • 用 Haskell 语言开发整个 Ajax 应用程序

以前版本的项目位于vir.mskhug.ru

于 2011-06-15T19:43:35.513 回答
9

虽然 GHCJS 似乎没有得到积极维护,但Emscripten似乎很流行。

  • Emscripten 将LLVM位码编译为 JavaScript。
  • GHC 的 LLVM 后端似乎正在积极开发中。
  • 直观地说,要回答这个问题,以下管道可能与“生产质量”相差不远: Haskell lexemes (-> GHC ->) LLVM lexemes (-> Emscripten ->) JavaScript lexemes

我承认这是一篇投机文章。

于 2012-12-05T18:49:34.367 回答
2

这种语言Roy可能不是真正的 Haskell (?),但看起来非常相似:

http://roy.brianmckenna.org/

罗伊似乎还活着;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 个月前发布的。

于 2012-06-19T02:16:46.627 回答
0

Yesod 提供了一份“最高生产级别”的候选名单:https ://github.com/yesodweb/yesod/wiki/Javascript-Options (Yesod 是一个非常流行的 Haskell 网络框架,所以他们可能知道他们在说什么)

于 2012-05-23T19:58:30.460 回答