Тип F # Статистический - PullRequest
       3

Тип F # Статистический

0 голосов
/ 29 ноября 2018

Я создал статистику типов, и я должен возвращать каждое значение = 0 в статистике типов.Я не знаю, как вернуть статистику типов.Я только знаю, как вернуть «список».Вот тип:

type Statistics =
{ mp: Nat  //--> should get 0
  w: Nat   //--> should get 0
  d: Nat   //--> should get 0
  l: Nat   //--> should get 0
  gf: Nat  //--> should get 0
  ga: Nat  //--> should get 0
  gd: int  //--> should get 0
  pts: Nat //--> should get 0
  ag: Nat  //--> should get 0 }

Вот что я попробовал:

let zeroStats: Statistics =
    Statistics
    |> List.map (fun x -> x = 0N)

1 Ответ

0 голосов
/ 29 ноября 2018

Чтобы создать значение типа записи, вам нужно использовать следующий синтаксис:

let zeroStats =
  { mp = 0N  
    w = 0N   
    d = 0N   
    l = 0N   
    gf = 0N  
    ga = 0N  
    gd = 0
    pts = 0N 
    ag = 0N  }

Нет простого способа сделать это, используя итерацию или что-то вроде List.map.Вам просто нужно явно установить значение для каждого из полей.(Если бы это было проблемой, вы могли бы представить свои данные по-другому, возможно, в виде списка пар ключ-значение.)

Как уже упоминалось в комментариях, вы могли бы сделать это с помощью F # отражений, который представляет собой механизм, который проверяетструктура типа во время выполнения и позволяет вам манипулировать этим.Однако это более продвинутый метод, который вам, вероятно, здесь не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...