I ' программирование - это парадигма программирования который рассматривает вычисления как оценка математических функций и избегает состояния и изменяемых данных. Это подчеркивает применение функции, в отличие от императивный стиль программирования, который подчеркивает изменения в состоянии. Функциональное программирование имеет свои корни в лямбда-исчислении формальная система разработан в 1930-х годах для исследования определение функции, функция приложение и рекурсия. Много языки функционального программирования могут рассматриваться как разработка лямбда-исчисление.
На практике разница между
математическая функция и понятие
"функции", используемой в императиве
программирование - это необходимость
функции могут иметь побочные эффекты,
изменение значения состояния программы.
Из-за этого в них отсутствует ссылочная
прозрачность, т.е. один и тот же язык
выражение может привести к разным
значения в разное время в зависимости от
состояние выполняющейся программы.
И наоборот, в функциональном коде
выходное значение функции зависит
только на вводимых аргументах
к функции, поэтому вызов функции
f
дважды с одинаковым значением для
аргумент x
даст то же самое
результат f (x)
оба раза. Устранение
побочные эффекты могут значительно облегчить
понять и предсказать поведение
программы, что является одним из ключевых
мотивации для развития
функциональное программирование.
В параграфе 2, где говорится
И наоборот, в функциональном коде выходное значение функции зависит только от аргументов, которые вводятся в функцию, поэтому вызов функции
f
дважды с одним и тем же значением для аргументаx
будет давать одинаковый результатf (x)
оба раза.
Разве это не тот же самый случай для процедурного программирования?
На что следует обратить внимание в выделении процедурного и функционального?