Vraiment comprendre la différence entre procédure et fonctionnelle

Je vais vraiment avoir du mal à comprendre la différence entre de procédure et fonctionnelle paradigmes de programmation.

Voici les deux premiers paragraphes de l'article de Wikipédia sur de la programmation fonctionnelle:

En informatique, fonctionnelle
la programmation est un paradigme de programmation
qui traite de calcul que les
évaluation de fonctions mathématiques
et évite d'état et de données mutable. Il
met l'accent sur l'application de
fonctions, contrairement à la
la programmation impérative de style, qui
met l'accent sur les changements dans l'état.
La programmation fonctionnelle a ses racines
dans le lambda calcul, un système formel
développé dans les années 1930 pour étudier
définition de la fonction, la fonction
d'application, et la récursivité. De nombreux
langages de programmation fonctionnelle peut
être considérées comme des élaborations sur la
lambda calcul.

Dans la pratique, la différence entre un
fonction mathématique et la notion
d'une "fonction", utilisés dans l'impératif
la programmation est impératif que
les fonctions peuvent avoir des effets secondaires,
la modification de la valeur de programme de l'état.
En raison de ce qui leur manque référentielle
la transparence, c'est à dire la même langue
l'expression peut entraîner différents
les valeurs à différents moments selon
l'état de l'exécution de programme.
À l'inverse, dans le code fonctionnel, l'
valeur de sortie d'une fonction
uniquement sur les arguments d'entrée
à la fonction, de sorte que l'appel d'une fonction
f deux fois avec la même valeur pour un
argument x produira le même
résultat f(x) les deux fois. L'élimination de
les effets secondaires peuvent rendre beaucoup plus facile
pour comprendre et prédire le comportement
d'un programme, qui est l'un des principaux
les motivations pour le développement de
la programmation fonctionnelle.

Au paragraphe 2, où il est dit

À l'inverse, dans le code fonctionnel, la valeur de sortie d'une fonction dépend uniquement sur les arguments d'entrée de la fonction, de sorte que l'appel d'une fonction f deux fois avec la même valeur d'un argument x produira le même résultat f(x) deux fois.

N'est-ce pas exactement le même cas pour la programmation procédurale?

Que doit-on chercher dans la procédure vs fonctionnelle qui se démarquent?

  • Le "Charmant Python: Fonctionnelle Programmation en Python" lien de Abafei a été brisé. Voici un bon jeu de liens: ibm.com/developerworks/linux/library/l-prog/index.html ibm.com/developerworks/linux/library/l-prog2/index.html
  • Un autre des aspects de cette appellation. Par exemple. en JavaScript et en Common Lisp, nous utilisons le terme de fonction, même s'ils sont autorisés effets secondaires et dans le Schéma i même est toujours appelé proceduere. Une CL fonction de ce qui est pur peut être écrit comme un pur Schéma fonctionnel de la procédure. Presque tous les livres sur le Schéma utilise le terme de la procédure, puisque c'est le tyerm utilisé dans la norme et il n'a rien à voir avec procedureal ou fonctionnelle.
InformationsquelleAutor Philoxopher | 2011-03-07