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

Is there a fully functional paradigm language that transpiles to JavaScript?

本文关键字:语言 范式 转换 JavaScript 功能齐全 一种 是否      更新时间:2023-09-26

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

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

查看 Scala.js、Elm 或 PureScript。

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

其中,我只真正使用过Scala.js和Elm,在我看来,两者都非常有效。

咖喱

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

def curried(param1: Int)(param2: Int): Int = ...
如果你

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

如果你更喜欢Haskell,

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

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

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

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

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