Quando a compreensão da scala é preguiçosa?

Em Python, eu posso fazer algo assim:

lazy = ((i,j) for i in range(0,10000) for j in range(0,10000))
sum((1 for i in lazy))

Vai demorar um pouco, mas o uso da memória é constant

A mesma construção em scala:

(for(i<-0 to 10000; j<-i+1 to 10000) yield (i,j)).count((a:(Int,Int)) => true)

Depois de um tempo, recebo umjava.lang.OutOfMemoryError, mesmo que deva ser avaliado preguiçosament

questionAnswers(2)

yourAnswerToTheQuestion