Сегодня, обсуждая примеры применения ленивых вычислений, вдруг понял, что ленивость напрямую связана именно с функциональным подходом. Именно отсутствие побочных эффектов позволяет вычислять аргументы по мере необходимости. В императивном случае в функции f(a, g(x)) нельзя начинать вычислять f, зная только a. А вдруг
g(x) {
…
a = x * x;
…
}
А в функциональном случае — запросто!
Вообще, мне вдруг стало понятно, почему функциональный подход сейчас стал выходить за академические рамки и актуализироваться в промышленном программировании. Интел обещает, что в ближайшее время количество ядер в процессоре будет измеряться степенями двойки, как ячейки памяти. Даже предлагает своеобразное расширение C++ под именем Intel CT. Но ФП, с отсутствием глобального контекста и побочных эффектов, намного безопаснее.
16 апреля 2008
Ленивые вычисления и будущее функциональных языков
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий