Kategorien von 'for'-Schleifen

11

Ich erinnere mich an einige der Forschung einmal zu lesen , wo ein Körper von C - Code analysiert worden war, und die Ergebnisse waren , dass die überwiegende Mehrheit der forSchlingen in etwa fünf Kategorien eingeteilt werden können, auf die funktionalen Äquivalenten entspricht map, filter, foldusw.

Ich kann dieses Papier / diesen Artikel nicht mehr finden. Kann mich jemand darauf hinweisen?

Stusmith
quelle
3
Beim Stapelüberlauf habe ich etwas Ähnliches gefunden: stackoverflow.com/a/2647704/1009414 Vielleicht finden Sie dort einige Informationen zu diesem Artikel.
Thaven
1
Homomorphismen, Katamorphismen und Anamorphismen usw. sind möglicherweise eine Google-Suche wert, für Schleifen, die nicht auf Listen stehen
jk.

Antworten:

11

Dies ist keine exakte Übereinstimmung mit dem, was Sie angefordert haben, aber ich denke, es kommt der Wurzel Ihrer Frage ziemlich nahe.

Auf der Seite dieser Site zu Schleifen werden eine Reihe von Schleifenmustern erläutert.

  • Zählen
  • gefilterte Anzahl
  • akkumulieren
  • gefiltert-akkumulieren
  • Suche
  • extrem
  • Extremindex
  • Filter
  • Karte
  • Mischen
  • verschmelzen
  • versteinert
  • Fehlzustand

Sie haben auch eine Seite über Rekursion , die viele der gleichen Muster auf rekursive Weise abdeckt.


quelle
14
... Ich habe gehofft , "extreme" Schleifen wären, na ja, extremer ...;)
Izkata
0

Ich glaube, ich habe es auch gehört. Irgendwo in den SICP-Videos oder im Buch habe ich gehört, dass die meisten (wenn nicht alle) Programme / Algorithmen mithilfe von Streams und Filtern ausgedrückt werden können. Streams beginnen bei Vorlesung 6A.

Alle Loops (für, while, do-while usw.) sind alle mit Label, Compare und Conditional Jump implementiert, sodass sie nur syntaktischer Zucker sind, um das Lesen und Verstehen zu erleichtern.

Sylwester
quelle