Я действительно понимаю разницу между процедурным и функциональным

I ' программирование - это парадигма программирования который рассматривает вычисления как оценка математических функций и избегает состояния и изменяемых данных. Это подчеркивает применение функции, в отличие от императивный стиль программирования, который подчеркивает изменения в состоянии. Функциональное программирование имеет свои корни в лямбда-исчислении формальная система разработан в 1930-х годах для исследования определение функции, функция приложение и рекурсия. Много языки функционального программирования могут рассматриваться как разработка лямбда-исчисление.

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

В параграфе 2, где говорится

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

Разве это не тот же самый случай для процедурного программирования?

На что следует обратить внимание в выделении процедурного и функционального?

110
задан nbro 8 January 2017 в 18:25
поделиться