Scala: rozumienie polimorfizmu parametrycznego
Jaka jest różnica pomiędzy
def drop1[A](l: List[A]) = l.tail
i
def drop1(l: List[Int]) = l.tail
pod warunkiem, że użycie wygląda podobnie
drop1(List(1,2,3))
?
Kiedy należy użyć jednego lub drugiego i dlaczego? Podczas gdy rozumiem drugi przykład, tak naprawdę nie rozumiem celu pierwszego.