Catégories de boucles 'for'

11

Je me souviens d' une fois la lecture des recherches où un ensemble de codes C a été analysé et les résultats ont démontré que la grande majorité des forboucles pourraient être classées en cinq catégories, correspondant aux équivalents fonctionnels de map, filter, fold, etc.

Je n'arrive plus à trouver cet article / article. Quelqu'un peut-il me l'indiquer?

stusmith
la source
3
J'ai trouvé quelque chose de similaire sur le débordement de pile: stackoverflow.com/a/2647704/1009414 Peut-être y trouverez-vous des informations sur cet article.
Thaven
1
les homomorphismes, les catamorphismes et les anamorphismes, etc. pourraient valoir un google, pour les boucles qui ne figurent pas sur les listes
jk.

Réponses:

11

Ce n'est pas une correspondance exacte pour ce que vous demandiez, mais je pense que cela se rapproche assez de la racine de votre question.

La page de ce site sur les boucles traite d'un certain nombre de modèles de boucle.

  • compte
  • nombre de filtres
  • accumuler
  • filtré-accumulé
  • chercher
  • extrême
  • indice extrême
  • filtre
  • carte
  • mélanger
  • fusionner
  • fossilisé
  • état manqué

Ils ont également une page sur la récursivité qui couvre plusieurs des mêmes modèles de manière récursive.


la source
14
... J'espérais que les boucles "extrêmes" seraient plus, enfin, extrêmes ...;)
Izkata
0

Je pense que je l'ai entendu aussi. Quelque part dans les vidéos SICP ou le livre, je pense avoir entendu dire que la plupart (sinon tous) les programmes / algorithmes peuvent être exprimés à l'aide de flux et de filtres. Streams commence à la leçon 6A.

Comme pour toutes les boucles (for, while, do-while et ainsi de suite), elles sont toutes implémentées avec une étiquette, une comparaison et un saut conditionnel de sorte qu'elles ne sont que du sucre syntaxique pour le rendre plus facile à lire et à comprendre.

Sylwester
la source