Używam następujący fragment kodu:Scala - iteratory i takeWhile
val it = List(1,1,1,2,2,3,3).iterator.buffered
val compare = it.head
it.takeWhile(_ == compare).toList
i zwraca (1,1,1). Jeśli jednak uruchomię to jako:
val it = List(1,1,1,2,2,3,3).iterator.buffered
it.takeWhile(_ == it.head).toList
Dostaję (1,1). Dlaczego tak jest? Czy po wywołaniu head
nie oceniono, czy wynik powinien być taki sam?