2015-03-04 12 views
7

Enumerable.t tipini iksir olarak parametrelendirmek mümkün mü?Parameterize numaralandırılmamış tip iksir tippecs

yüzden şu anda ben foo s listesini alır bir işlevi vardır:

@spec the_awesome([foo]) :: any 
def the awesome(foos) do 
    Enum.reduce(foos, &(bar(&2, &1))) 
end 

ve gerçekten bir liste olmak zorunda değil! Sadece işlev çağrısı Enum modülünden olduğundan herhangi Enumerable almaya typespec değişebilir ama Enumerable olduğunu foo s

şey

@spec the_awesome(Enumerable.t(foo)) :: any 

gibi tamamen oluşmalıdır şartı tutmak istiyorum Bu mümkün mü?

cevap

4

Maalesef şu anda değil. Diyalizciye, eğer onların gerçekten etkileyici olmalarını istiyorsak, protokolleri nasıl ele alacağımızı öğretmeliyiz ve böyle bir planımız yok.