Функциональное программирование против декларативного программирования против императивного программирования

Я слишком привык к императивному программированию, которое является обычным способом указания компьютеру выполнять шаг за шагом процедуру для получения конечного результата. С другой стороны, декларативное программирование просто передает ввод и ожидает вывод, не указывая процедуру, как это делается. Меня смущает функциональное программирование. Я знаю, что функциональное программирование — это парадигма программирования, которая рассматривает вычисления как оценку математических функций и избегает состояния и изменяемых данных и не является типом декларативного языка. Однако я до сих пор не могу понять, как это может работать.

Давайте рассмотрим пример выполнения чисел Фибоначчи.

Императивное программирование:

#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

Как работает функциональная программа?

Кроме того, поправьте меня, если мои определения неверны. Пожалуйста, не стесняйтесь комментировать..

32
задан lakesh 7 June 2012 в 04:32
поделиться