16 апреля 2008

Ленивые вычисления и будущее функциональных языков

Сегодня, обсуждая примеры применения ленивых вычислений, вдруг понял, что ленивость напрямую связана именно с функциональным подходом. Именно отсутствие побочных эффектов позволяет вычислять аргументы по мере необходимости. В императивном случае в функции f(a, g(x)) нельзя начинать вычислять f, зная только a. А вдруг
g(x) {

a = x * x;

}
А в функциональном случае — запросто!
Вообще, мне вдруг стало понятно, почему функциональный подход сейчас стал выходить за академические рамки и актуализироваться в промышленном программировании. Интел обещает, что в ближайшее время количество ядер в процессоре будет измеряться степенями двойки, как ячейки памяти. Даже предлагает своеобразное расширение C++ под именем Intel CT. Но ФП, с отсутствием глобального контекста и побочных эффектов, намного безопаснее.

Комментариев нет: