11

是否有一种语言可以转换为 JavaScript(如 TypeScript、CoffeScript 等)并且几乎是纯函数式的(如 Haskell、Erlang、F#)?

我知道有一些库可以帮助保持不变性(下划线),并且 ES6 中有很多很酷的数组函数和 lambda。但是我正在寻找的是一个函数式的语法和转译器,所以我可以毫不费力地编写函数式 JavaScript。

4

3 回答 3

11

查看Scala.jsElmPureScript

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

其中,我只真正使用过 Scala.js 和 Elm,在我看来这两个都非常好用。

咖喱

在 Elm 和 PureScript 中,函数默认是柯里化的。在 Scala 中,通过使用多个参数列表可以很容易地完成柯里化:

def curried(param1: Int)(param2: Int): Int = ...
于 2016-04-25T11:28:40.220 回答
2

如果你喜欢 F#,你可能会喜欢 OCaml,通过js_of_ocaml(更好的 OCaml 兼容性)或BuckleScript(更好的 JS 互操作)甚至Reason ML(更现代的语法,包括JSX)。

如果您更喜欢 Haskell,您可以使用GHCJS(它是 Haskell,针对 JS)、Purescript(严格评估意味着更简单的 JS)或Elm(无论如何都需要类型类)。

我对 Erlang 不太确定。似乎有一些针对 JS 的尝试(可能有些成功),但我对其中任何一个都不熟悉。

于 2019-08-14T21:13:32.210 回答
1

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

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

2.) WebSharper - 一个完全不同的 Web 框架,用于开发功能性和反应性 .NET 应用程序

于 2016-10-21T01:57:49.110 回答