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?


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.