プロトタイプのタプルをレコードにアップグレードしました。いつか本当のクラスになるかもしれません。それまでの間、次のようなコードを翻訳したいと思います。
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
問題は、Example レコードを宣言したときに関数を取得できると思っていたのに、取得できなかったことです。私は少し突っ込んでクラスのプロパティを試しましたが、それもうまくいきません。ドキュメントに何かが欠けているだけですか、それとも高次のアクセサーを手動で作成する必要がありますか? (それが私が現在使用している回避策です。)