【问题标题】:F# Anonymous Records error (unmatched/unexpected) - Visual Studio 2019F# 匿名记录错误(不匹配/意外) - Visual Studio 2019
【发布时间】:2021-03-25 06:42:05
【问题描述】:

您好,我对 F# 类的代码有疑问。我有带有 F# 和 .NET 包的 VS2019,一切正常,直到出现异常记录。

type Student = {
imie: string;
nazwisko: string;
wiek:int;
rokStudiow:int;

}

  let dane = [
        {imie="Kowalska"; nazwisko="AA"; wiek=21; rokStudiow = 1};
        {imie="Nowak"; nazwisko="BB"; wiek=31;rokStudiow = 2};              // musza byc sredniki
        {imie="Adamski";nazwisko="CC"; wiek=41; rokStudiow = 3};            // kolekcja studentow
        {imie="Kot";nazwisko="DD"; wiek=51; rokStudiow = 2};
        {imie="Konopnicki";nazwisko="EE"; wiek=21; rokStudiow=2}
    ]
    let wynik = List.map (fun o -> { | imie=o.imie;nazwisko=o.nazwisko | }) dane

【问题讨论】:

    标签: f# record anonymous


    【解决方案1】:

    这是一个简单的语法错误。

    匿名记录写成 let foo = {| a=1; b="hi" |}你在花括号和管道之间插入了一个空格。

    只需将您的作业更改为

    let wynik = List.map (fun o -> {| imie=o.imie;nazwisko=o.nazwisko |}) dane

    你应该很高兴。

    (顺便说一句,您的代码中有很多多余的分号。例如,您可以跳过 type Student 定义中的所有分号 此外,更惯用的 f# 语句是

    let wynik = dane |> List.map (fun o -> {| imie=o.imie;nazwisko=o.nazwisko |})

    不过,这纯粹是风格问题。)

    【讨论】:

      猜你喜欢
      • 2019-09-07
      • 1970-01-01
      • 2021-09-02
      • 2021-04-16
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      相关资源
      最近更新 更多