我在F#中有下面的函數,不幸的是在我的摺疊開始處的Seq.filter中,w2.Text(在比較中)未標識爲Word類型。在這種情況下,我不確定如何幫助編譯器。編譯器在其他所有方面似乎都很好。這是我第一次遇到這個問題。無法確定F#函數中的對象類型
let CreateWordRelationDB() =
let db = new AnnotatorModel()
printfn "%s" "Entered Function and created db v7"
let tweets = db.Tweets
|> Seq.cast<Tweet>
|> Seq.map(fun t -> t.Text)
let words = db.Words |> Seq.cast<Word>
words
|> Seq.fold(fun acc w1 ->
let filtacc = acc
|> Seq.filter(fun w2 ->
if(w1.Text = w2.Text) then false else true)
filtacc
|> Seq.map(fun w2 -> CreateWordRelation w1 w2 tweets)
|> Seq.iter(fun r -> db.WordRelations.Add(r) |> ignore)
db.SaveChanges() |> ignore
filtacc
) words
如果您有任何共享等領域中使用的表達兩類這種情況通常只會發生,或者您使用的是類而不是記錄 - 由於諸如方法重載等類中的某些特性,編譯器無法推斷出這種類型。 –