Основы функционального программирования/Вводная лекция: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 146:
(отсутствие побочных эффектов)
 
В императивных языках функция в процессе своего выполнения может читать и изменять значения глобальных [[w:Переменная (программирование)|переменных]] и осуществлять операции [[w:ввод-вывод|ввода-вывода]]. Поэтому, если вызвать одну и ту же функцию дважды с одним и тем же аргументом, может случиться так, что в качестве результата вычислятся два различных значения. ТакаяИзменение функцияфункцией называетсясостояния функциейпрограммы синаче, чем через возвращение значения, называется побочнымипобочным эффектамиэффектом.
 
Описывать функции без побочных эффектов позволяет практически любой язык. Однако некоторые языки поощряют или даже требуют от функции побочных эффектов. Например, во многих объектно-ориентированных языках в функцию-член класса передаётся скрытый параметр (чаще он называется <tt>this</tt> или <tt>self</tt>), который эта функция неявно изменяет.