Bu, yalnızca akademik bir sorudur, ancak tür kısıtlamaları hakkında this question kodunun silinmesini sağlar. Bu kişi, örnek olarak aşağıdakileri verdi:Yinelemeli bir tür kısıtlaması ile nesne yapmak imkansız mı?
type Something<'a, 'b when 'b :> seq<'b>>() =
member __.x = 42
hangi f # mutlu bir şekilde derler. Şimdi sorun bu nesneyi nasıl yapıyorsun?
open System.Collections.Generic
type Node<'a>() =
let getEmptyEnumerator() = Seq.empty<Node<'a>>.GetEnumerator()
interface IEnumerable<Node<'a>> with
member this.GetEnumerator() = getEmptyEnumerator()
member this.GetEnumerator() =
getEmptyEnumerator() :> System.Collections.IEnumerator
yerine boş diziyi döndürmek, alt düğümler bir dizi döndürmek için bu sınıf uygulamak olabilir
:let z = new Something<???, ???>()
olmayan bir zoraki örneğin https://msdn.microsoft.com/en-us/library/documentformat.openxml.openxmlelement(v=office.14).aspx bakınız Kullanılabilecek bir sınıf. – kvb
Belki 'İmkansız' kelimesini kaldırmak için başlığı değiştirmelisiniz, 'Bu başımı kafamı alamıyorum' ' –
Kvb Haklısınız. 'let z = yeni bir şey()' çalışır –
Ray