Roslyn 能否解析和编译 F# 代码?

Will Roslyn be able to parse and compile F# code?

Microsoft.CodeAnalysis.LanguageNames class 有一个 F# 条目:

public static class LanguageNames
{
    public const string CSharp = "C#";
    public const string VisualBasic = "Visual Basic";
    public const string FSharp = "F#";
}

这让我很兴奋,我想我可以让我的用户也可以通过切换一个来使用 F# 属性。唉,好像不是这样的。有用于 C# 和 VB.NET 的 Roslyn nuget 包,但没有用于 F# 的包。

是否计划在 Roslyn 中支持分析和 运行 F# 代码?

如果不是,您会推荐哪些替代方案来解析和执行 F#?

您可以使用 F# Compiler Service.

Roslyn 上 F# 的问题在于 F# 从一开始就是自托管的,而 C# 和 VB 编译器长期以来都是用 C++ 编写的。到 C# 和 VB 最终成长起来并获得 Roslyn 时,F# 已经拥有一个拥有自己架构的完善的编译器。更糟糕的是,这种架构在 Roslyn 中不容易遵循(尽管我认为他们甚至没有尝试过),因为它大量使用了 C# 和 VB.

中不可用的语言功能。