Question

J'ai lu quelques articles sur tous les sujets, mais je ne suis pas tout à fait les différences.

Était-ce utile?

La solution

Programmation structurée est un terme ancien que je pense engloberait fonctionnelle, la procédure, et bien d'autres. Cela signifie essentiellement en utilisant des structures explicites de flux de contrôle plutôt que de sauter directement au sujet de l'enseignement à l'instruction.

Programmation fonctionnelle et la procédure sont à la fois, en ce sens, les paradigmes structurés. La programmation fonctionnelle est également la programmation déclarative - la structure donnée à votre code correspond à son sens - un programme est une fonction qui modifie l'état du monde. La programmation procédurale est ce que vous considérez comme la programmation « typique » dans toutes les langues de C ou de ses descendants, y compris les langages OO tels que Java et C ++. Un programme est une série d'instructions, à exécuter en série, et en invoquant subprocedures le long du chemin.

Ou, comme il a été célèbre décrit:

  

Programmation fonctionnelle est comme   décrivant votre problème à un   mathématicien. impératif programmation   est comme donner des instructions à un   idiot.

    --- arcus, #scheme on Freenode

Autres conseils

La programmation fonctionnelle utilise des fonctions comme des éléments de première classe. En utilisant des fonctions d'ordre supérieur (prise et / ou fonctions retour); conduisant à des constructions puissantes et code bien factoré. Certaines personnes mettent également l'accent sur l'aspect de la pureté de la PF qui est de dire que les fonctions doivent toujours le même résultat, compte tenu de la même entrée. Ceux-ci, je crois, sont les deux piliers fondamentaux de la PF. Je vois aussi d'éviter des effets secondaires comme abstraire essentiellement un peu à l'écart des instructions de niveau machine de chargement / stockage.

Programmation structurée remonte à papier « Aller Considered Harmful » de Djikstra. Cela signifie utiliser si / alors / else / Elif structures, do / while / until / pour les boucles, etc. au lieu de recourir à goto. Il est essentiellement abstraire un peu à l'écart des instructions au niveau de la machine comparer / branche. Programmation structurée est orthogonale à la fois la programmation fonctionnelle et de la procédure.

La programmation procédurale, je crois, fait référence à la programmation avec l'impératif « Sous-programmes » (par opposition aux « fonctions » pures) constitué généralement d'une série de « déclarations » (par opposition aux « expressions ») laissant derrière eux des effets secondaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top