是否有F#替代方案(非.Net)实施项目?

是否有F#替代方案(非.Net)实施项目?,f#,F#,一些流行的语言,如Python和Ruby,具有本机、JVM和.Net CLR实现。C#是通过免费的Mono项目实现的。是否有任何实现F#的尝试?Mono是.net的一个实现,它碰巧包括一个c#编译器(以及一个vb编译器)。它主要不是一个c#实现。F#interactive,fsi.exe,已经在Mono上运行,编译的F#程序也是如此 正如其他人指出的,微软的标准F#实现只是一个运行在多种CLI实现(即.NET和Mono)上的.NET(CLI)应用程序。F#还将.NET(CLI)应用程序作为库生成

一些流行的语言,如Python和Ruby,具有本机、JVM和.Net CLR实现。C#是通过免费的Mono项目实现的。是否有任何实现F#的尝试?

Mono是.net的一个实现,它碰巧包括一个c#编译器(以及一个vb编译器)。它主要不是一个c#实现。

F#interactive,fsi.exe,已经在Mono上运行,编译的F#程序也是如此

正如其他人指出的,微软的标准F#实现只是一个运行在多种CLI实现(即.NET和Mono)上的.NET(CLI)应用程序。F#还将.NET(CLI)应用程序作为库生成,同时在.NET和Mono上工作。但是,这仍然是F#的相同CLI实现(只是在不同的CLI实现上运行)

回答您的问题-

  • 据我所知,没有其他尝试为其他平台/运行时实现F#编译器
  • F#与共享一个共同的背景,因此获得F#的另一个实现的最简单方法是采用OCaml并添加特定于F#的特性(并删除特定于OCaml的特性)
  • 您只能使用共享子语言,并使用F#和OCaml进行交叉编译

此外,还有一些计划,因此(将来)可能会有人使用源代码(发布时)将F#移植到其他平台,如JVM。

有一个编译器,用于将F#的子集定向到FPGA,我猜这是一个非.NET实现


F#编译器也在Mono上运行,但这仍然是F#的.NET实现(只是在Mono上运行)。我看到了一些用于Ocaml的camlp4宏,它们实现了活动模式、计算表达式和块级范围的空白。通过某种程度的宏攻击,您可以使用F#语法编写OCaml。Camlp宏是开源的吗?据我所知,这实际上是在封面下使用F#引号(因此它仍然是F#编译器的标准.NET版本)。然而,如果这算是一种“替代实现”,那么还值得一提的是WebSharper(),它将F#(引号)编译成JavaScript。