Список записей в F #? - PullRequest
       20

Список записей в F #?

4 голосов
/ 28 сентября 2011

Как вы работаете со списком записей в F #? Как бы вы могли передать это в качестве аргумента в функции? Я хочу сделать что-то вроде этого:

type Car = {
  Color : string;
  Make : string;
  }

let getRedCars cars =
  List.filter (fun x -> x.Color = "red") cars;

let car1 = { Color = "red"; Make = "Toyota"; }
let car2 = { Color = "black"; Make = "Ford"; }
let cars = [ car1; car2; ]

Мне нужен способ сообщить своей функции, что "автомобили" - это список записей автомобилей.

1 Ответ

6 голосов
/ 28 сентября 2011

Ваш код работает просто отлично. Также можно написать:

let getRedCars cars =
  List.filter (function {Color = "red"} -> true | _ -> false) cars

Если вас беспокоит неправильная подпись, вы можете добавить аннотации типов. Например:

let getRedCars (cars:Car list) : Car list = //...
...