A avaliação preguiçosa (lazy evaluation) em Scala permite atrasar a avaliação de expressões até que seus valores sejam necessários, evitando avaliações repetidas e possíveis erros em locais diferentes do código. Isso é implementado através de lazy vals, streams e call by name.