f# - 使用匿名记录给出语法错误 : FS0010: Unexpected symbol '|' in expression

标签 f#

我很想使用 F# 4.6 匿名记录,但编译器似乎并没有“得到它”。如何指定我使用的是 4.6?我尝试了很多谷歌搜索,但没有关于如何实际告诉编译器使用最新版本(?)的文档。

启动一个新的 dotnet new console -lang F# -o src/App,并尝试制作一个虚拟示例:

open System

[<EntryPoint>]
let main argv =
    let myrec = {| X=3; Y=4 |}
    printfn "Hello World from F#! test %A" myrec
    0 // return an integer exit code

不起作用,因为:

src/App/Program.fs(5,18): error FS0010: Unexpected symbol '|' in expression [src/App/App.fsproj]
src/App/Program.fs(5,17): error FS0604: Unmatched '{' [src/App/App.fsproj]

我的 App.fsproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Program.fs" />
  </ItemGroup>

</Project>

最佳答案

事实证明,我的 .NET Core Runtime 落后太多了。由于 MacOS 的不稳定警告,我没有安装最新版本,但我现在看到您需要 MacOS 不稳定版本才能支持 F# 4.6。

解决方案是转到 https://dotnet.microsoft.com/download/dotnet-core/2.2并安装最新版本!

关于f# - 使用匿名记录给出语法错误 : FS0010: Unexpected symbol '|' in expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56291466/

相关文章:

.net - 如何解决带有 PlatformNotSupportedException 的程序集?

visual-studio - 如何在 Visual Studio 2017 中为 .Net core 2.1 应用程序引用 F# 交互中的 Dll?

f# - 序列的自动枚举

f# - Protocol Buffer 是否可用于 F#?

html - 在没有 Visual Studio 的情况下使用 Webshaper 显示 HTML 页面

f# - F# 模块中的通用值?

function - 给定下面的匿名函数,函数签名中的 "<fun:clo@1>"是什么意思?

wpf - 使用 WPF 在 F# 中调用窗口加载事件的方法

.net - 在 System.Numerics.Vector<T> 中使用 F# 度量单位

recursion - F#中的递归记录