Я слишком привык к императивному программированию, которое является обычным способом указания компьютеру выполнять шаг за шагом процедуру для получения конечного результата. С другой стороны, декларативное программирование просто передает ввод и ожидает вывод, не указывая процедуру, как это делается. Меня смущает функциональное программирование. Я знаю, что функциональное программирование — это парадигма программирования, которая рассматривает вычисления как оценку математических функций и избегает состояния и изменяемых данных и не является типом декларативного языка. Однако я до сих пор не могу понять, как это может работать.
Давайте рассмотрим пример выполнения чисел Фибоначчи.
Императивное программирование:
#include<stdio.h>
#include<conio.h>
main()
{
int n,i,c,a=0,b=1;
printf("Enter Fibonacci series of nth term : ");
scanf("%d",&n);
printf("%d %d ",a,b);
for(i=0;i<=(n-3);i++)
{
c=a+b;
a=b;
b=c;
}
printf("%d ",c);
getch();
}
Декларативное программирование:
Give the nth number and it will return the value of the nth number
Как работает функциональная программа?
Кроме того, поправьте меня, если мои определения неверны. Пожалуйста, не стесняйтесь комментировать..