Bitte beachten Sie den folgenden Code.Wenn eine Funktion mit Seq-Typ-Parameter ein Datensatzfeld ist, akzeptiert sie keine Liste oder kein Array mehr
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.
Ich verstehe nicht, warum Seq.head und fund.f Verhalten anders hier. Es sieht für mich wie ein Compilerfehler aus. Wenn dies jedoch beabsichtigt ist, kann mir jemand helfen, mir ein bisschen zu erklären? Danke vielmals!