是否有一种功能齐全的范式语言可以转化为JavaScript?

时间:2016-04-25 11:26:43

标签: javascript functional-programming transpiler

是否有一种语言可以转化为JavaScript(如TypeScript,CoffeScript等)并且几乎是纯粹的功能(如Haskell,Erlang,F#)?

我知道有些库有助于维护不变性(Underscore),ES6中有很多很酷的数组函数和lambdas。但是我正在寻找的是类似于语法和转换器的功能,所以我可以用很少的努力编写功能性的JavaScript。

3 个答案:

答案 0 :(得分:8)

结帐Scala.jsElmPureScript

其他语言包括ClojureScript(Clojure)和Funscript(F#)

其中,我只使用过Scala.js和Elm,在我看来这两种方法都非常好用。

柯里

在Elm和PureScript中,默认情况下会使用curry函数。 在Scala中,使用多个参数列表可以非常轻松地完成Currying:

> str = "Test &&Product &Order &number";
> str.split(/&(?!&)/);

> ["Test &", "Product ", "Order ", "number"]

答案 1 :(得分:1)

如果您希望继续使用.NET平台,并希望使用F#作为您的语言来转换为JavaScript,那么我建议您查看以下内容:

1。)Fable - Fable汇集了F#编译器和Babel的强大功能,使JavaScript成为F#的真正后端。它直接在F#源代码上工作,无需编译。

2。)WebSharper - 一个根本不同的Web框架 用于开发功能和反应式.NET应用程序

答案 2 :(得分:0)

如果您喜欢F#,则可以通过js_of_ocaml(更好的OCaml兼容性)或BuckleScript(更好的JS互操作)甚至Reason ML(更现代的语法,包括{{3} }。

如果您更喜欢Haskell,则可以使用JSX(针对Hass的Haskell),GHCJS(严格的评估意味着更简单的JS)或Purescript(仍然需要类型类的人) )。

我不太了解Erlang。似乎已经有一些针对JS的尝试(可能有些成功),但是我对它们都不熟悉。