В функциональном программировании я узнал, что ленивая оценка и рьяная оценка дают один и тот же результат (Языки программирования: книга приложений и интерпретации).Таким образом, можно изменить семантику оценки, не получив неожиданных результатов.
Однако в нефункциональном и промышленном языке программирования, таком как JavaScript, я не думаю, что обе семантики генерируют результат.Например, если метод object.f(x)
возвращает значение, которое зависит от состояния объекта (например, время жизни), ленивая и энергичная оценка может возвращать разные значения.Кроме того, в функциональном программировании мы также можем получить другой результат, если функция f(x)
вернет значение, которое зависит, например, от температуры процессора.
Итак, ленивая и энергичная оценка потенциально приведет к разным результатам?Даже на функциональном языке программирования.