なぜ 2 行目でコンパイラ エラーが報告されるのだろうか
タイプ Relations は seq<'a> と互換性がありません
一方、最初のものは r の型 Relation を推論します。
type Microsoft.Office.Interop.Access.Dao.Database with
member x.f() =
let relations = [for r in x.Relations -> r]
let relations2 = x.Relations |> Seq.map id
()
for を使用してリレーションをループできる正確なプロパティは何ですか?
//再生ステップの編集:
VS2012 で空のソリューションを作成し、Microsoft.Office.Interop.Access.Dao への参照を追加して、以下のコードを貼り付けます。
module toto =
type Class1() =
member this.X = "F#"
type Microsoft.Office.Interop.Access.Dao.Database with
member x.f() =
let relations = [for r in x.Relations -> r]
let relations2 = x.Relations |> Seq.map id
()
r は obj ではなく Relation として型指定されます