2015-03-04 16 views
7

Czy można sparametryzować typ Enumerable.t w eliksir?sparametryzowany przeliczalny typ w eliksir typspecs

więc obecnie mam funkcję, która pobiera listę foo S:

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

i naprawdę nie trzeba być lista! skoro tylko jest wywołanie funkcji z modułu Enum Chciałbym zmienić typespec wziąć każdy Enumerable, ale zachować wymóg, że Enumerable muszą składać się wyłącznie z foo s

Coś

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

jest to możliwe?

Odpowiedz

4

Niestety teraz nie. Musimy nauczyć dializera, jak posługiwać się protokołami, jeśli naprawdę chcemy, aby były ekspresyjne i nie ma takich planów.

Powiązane problemy