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

214 байт добавлено ,  11 лет назад
Чтение (без модификации) глобальной переменной - не побочный эффект
(Чтение (без модификации) глобальной переменной - не побочный эффект)
== Побочные эффекты функции ==
 
В императивных языках некоторые функции в процессе выполнения своих вычислений могут читать и модифицировать значения глобальных переменных, осуществлять операции ввода/вывода, реагировать на исключительные ситуации, вызывая их обработчики. Такие функции называются '''функциями с побочными эффектами'''.
Другим видом побочных эффектов является модификация переданных в функцию параметров (переменных), когда в процессе вычисления выходного значения функции изменяется и значение входного параметра.
 
иногда путают.
В действительности это разные свойства функций. Например, функция <tt>rand</tt>, которая
возвращает случайное число или гипотетическая функция <tt>GetGlobalVarX</tt>, которая возвращает значение глобальной переменной X (и больше ничего не являетсяделает), детерминированнойне являются детерминированными, хотя онаони и не обладаетобладают побочными эффектами,.
аА вот гипотетическая функция <tt>print</tt>, выводящая текст на экран, и всегда возвращающая 0,
наоборот — является детерминированной, но обладает побочным эффектом (вывод текста на экран).
Ни одна из них не является чистой.
Анонимный участник