Kategorie pętli „for”

11

Pamiętam raz czytając rozeznanie gdzie organem kodu C zostały przeanalizowane, a wnioski są takie, że zdecydowana większość forpętli mogą być podzielone na pięć kategorii, odpowiadające funkcjonalnych odpowiedników map, filter, fold, itd.

Nie mogę już znaleźć tego artykułu / artykułu. Czy ktoś może mi to wskazać?

stusmith
źródło
3
Znalazłem coś podobnego w przypadku przepełnienia stosu: stackoverflow.com/a/2647704/1009414 Może tam znajdziesz informacje o tym artykule.
Thaven
1
homomorfizmy, katamorfizmy i anamorfizmy itp. mogą być warte google dla pętli, których nie ma na listach
jk.

Odpowiedzi:

11

To nie jest dokładne dopasowanie do tego, o co prosiłeś, ale myślę, że zbliża się do sedna twojego pytania.

Strona tej witryny na temat pętli omawia szereg wzorców zapętlenia.

  • rachunkowość
  • liczba przefiltrowanych
  • gromadzić
  • filtrowane-akumuluj
  • Szukaj
  • skrajny
  • wskaźnik ekstremalny
  • filtr
  • mapa
  • człapać
  • łączyć
  • skostniały
  • brakujący warunek

Mają także stronę Rekursji, która obejmuje wiele takich samych wzorców w sposób rekurencyjny.


źródło
14
... miałem nadzieję, że „ekstremalne” pętle będą bardziej, cóż, ekstremalne …;)
Izkata
0

Chyba też to słyszałem. Gdzieś w SICP-filmach lub książce myślę, że słyszałem, że większość (jeśli nie wszystkie) programy / algorytmy można wyrazić za pomocą strumieni i filtrów. Strumienie rozpoczynają się od wykładu 6A.

Jeśli chodzi o wszystkie pętle (do, while, do-while itd.), Wszystkie są zaimplementowane z etykietą, porównaniem i skokiem warunkowym, więc są one po prostu cukrem syntaktycznym, aby ułatwić czytanie i zrozumienie.

Sylwester
źródło