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.
中不可用的语言功能。
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.
中不可用的语言功能。