В чем разница между LazyList и Stream в Scala? - PullRequest
4 голосов
/ 08 февраля 2020

Я заметил, что Stream устарела в Scala 2.13, и они предлагают использовать LazyList. Они также говорят: «Используйте LazyList (который является полностью ленивым) вместо Stream (который имеет только ленивый хвост)».
Что это точно означает? Почему они осуждают Stream?

1 Ответ

5 голосов
/ 08 февраля 2020

NthPortal, участник LazyList, сообщает в Обновление и улучшение документов LazyList # 7842

Ключевое различие между LazyList и Stream - и его Ключевая особенность - это то, лени это или нет, оценивается лениво. Я не уверен, как лучше всего это передать.

Состояния jwvh в связанном вопросе

Stream элементы реализованы лениво, за исключением 1-й (головной) элемент. Это было замечено как недостаток.

Scala 2.13 примечания к выпуску состояние

immutable.LazyList заменяет immutable.Stream. Stream имел другое поведение лени и теперь считается устаревшим. ( # 7558 , # 7000 )

...