Чистота функции: различия между версиями

13 байт добавлено ,  10 лет назад
м
Другим видом побочных эффектов является модификация переданных в функцию параметров (переменных), когда в процессе вычисления выходного значения функции изменяется и значение входного параметра.
 
Описывать функции без побочных эффектов позволяет практически любой язык программирования. Однако некоторые языки поощряют или даже требуют от некоторых видов функций использования побочных эффектов. Например, во многих объектно-ориентированных языках в функцию-член класса передаётся скрытый параметр — указатель на экземпляр класса, от имени которого вызывается соответствующая функция (например, в [[C++]] этот параметр называется <tt>this</tt>, а в [[Object Pascal]] - <tt>self</tt>), который эта функция неявно модифицирует. Тем не менее, в языке [[C++]] можно указать для метода класса модификатор <tt>const</tt>, тем самым сообщив компилятору о том, что метод не модифицирует данные класса.
 
== Ортогональность детерминированности и побочных эффектов ==