Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Silver_s, Вы писали: S_>> Увидит там компилятор бесконечный цикл заполняющий ArrayList, посмотрит а нахрена он вобще нужен? Наружу модуля не выдается, пускай выкидывает его и все использования собирает в один цикл нужной длины. S> Там вроде бы yield придумали в версии 2. Специально для ленивых циклов.
Сомнительно. Если этот yield будет иметь ленивую семантику, это будет означать неопределенный порядок вычислений. Что не является граблями только в случае, если программа состоит из чистых функций (если побочные эффекты отсутствуют). Вот собственно и все — ленивые вычисления безопасны только при отсутствии побочных эффектов, а это и есть основная отличительная характеристика ФЯ.