Nie mogę wymyślić implementacji niektórych operacji dla niezmiennych sekwencji Scali. Użyję tego jako przykładu:Jak działa zarządzanie pamięcią dla kolekcji Scala?
def example: List[Int] = {
val list0 = List.range(1,10)
list0.tail
}
Gdy funkcja się skończy, lista0 jest poza zakresem. Czy głowa listy0 zostanie usunięta z pamięci, czy lista0 pozostanie taka sama, dopóki cała lista nie zostanie zebrana?
Scala używa takiego garbage collectora jak Java. Tak więc ta lista zostanie usunięta z pamięci, gdy gc zostanie uruchomione ponownie przez jvm i uświadomimy sobie, że ten obiekt może zostać zebrany. – Everv0id