5
以下のコードを参照してください。seq型パラメータを持つ関数がレコードフィールドの場合、リストまたは配列を受け入れません。
let x = Seq.head [1.0; 2.0] // This is ok.
type Func<'T> = { f: seq<'T> -> 'T }
let func = { f = Seq.head }
// Compilation error: This expression was expected to have type seq<obj> but here has type 'a list
let y = func.f [1.0; 2.0]
let z = func.f ([1.0; 2.0] |> List.toSeq) // This is ok.
なぜSeq.headとfund.fの動作が異なるのか分かりません。コンパイラのバグのようです。しかし、これが設計であれば、誰かが私に少し説明するのを助けることができますか?どうもありがとう!