Я только что обновил свой кортеж прототипов до рекорда. Когда-нибудь это может стать настоящим классом. А пока я хочу перевести код так:
type Example = int * int
let examples = [(1,2); (3,4); (5,6)]
let descs = Seq.map (fst >> sprintf "%d") examples
к этому:
type Example = {
Field1 : int
Field2 : int
Description : string
}
let examples = [{Field1 = 1; Field2 = 2; Description = "foo"}
{Field1 = 3; Field2 = 4; Description = "bar"}
{Field1 = 5; Field2 = 6; Description = "baz"}]
let descs = Seq.map Description examples
Проблема в том, что я ожидал получить функцию Description : Example -> string
, когда объявил запись в Примере, но я не получаю. Я немного покопался и попробовал свойства на классах, но это тоже не работает. Я просто что-то упустил в документации или мне придется писать средства доступа более высокого порядка вручную? (Это обходной путь, который я сейчас использую.)