据我所知,我正在使用F#4.5。
但是,VS2017不喜欢以下代码
let someAsyncIntOption = async{
return Some 1
}
let someAsyncString = async{
match! someAsyncIntOption with
|Some 1 -> return "Some one"
|_ -> return "None"
}
匹配!无法识别为有效语法。
我需要做什么才能使这项工作成功?
答案 0 :(得分:2)
F# 4.5 was released in VS 2017 v15.8 preview 5。以F#4.5运行时为目标还不够。您还必须具有F#4.5 编译器,以使该语法被接受。 F#4.5编译器随附VS 15.8预览版5;如果您运行的Visual Studio版本低于15.8预览5,则说明您有一个不了解match!
语法的F#编译器。
答案 1 :(得分:1)
根据...
https://blogs.msdn.microsoft.com/dotnet/2018/07/26/announcing-f-4-5-preview/
如果您还没有...
首先,安装:
如果在Visual Studio中(通过F#桌面开发组件)创建.NET桌面F#项目,则需要使用NuGet UI将FSharp.Core软件包更新为4.5.2。
一旦安装了必要的位,就可以开始使用Visual Studio,Visual Studio for Mac或使用Ionide的Visual Studio Code开发F#4.5代码。
发布.NET Core SDK 2.1.400和Visual Studio 2017 15.8版时,对于所有新项目,引用的FSharp.Core将为4.5.2,并且您无需执行第二步。
可能只有在将FSharp.Core软件包更新为4.5.2之后,您才需要将.NET Core作为目标。
我还没有尝试过任何方法,但是希望对您有所帮助。