Categorie di loop "for"


11

Ricordo che una volta aver letto qualche ricerca in cui un corpo di codice C era stata analizzata, ei risultati sono stati che la stragrande maggioranza dei forloop potrebbe essere classificato in circa cinque categorie, corrispondenti alle equivalenti funzionali di map, filter, fold, etc.

Non riesco più a trovare questo documento / articolo. Qualcuno può indicarmi questo?


3
Ho trovato qualcosa di simile sullo stack overflow: stackoverflow.com/a/2647704/1009414 Forse lì troverai alcune informazioni su questo articolo.
Thaven

1
omomorfismi, catamorfismi e anamorfismi ecc. potrebbero valere la pena di google, per i loop che non figurano negli elenchi
jk.

Risposte:


11

Questa non è una corrispondenza esatta per quello che stavi richiedendo, ma penso che si avvicini molto alla radice della tua domanda.

La pagina di questo sito sui loop discute una serie di modelli di loop.

  • conteggio
  • filtrato-count
  • accumulare
  • filtrato-Accumula
  • ricerca
  • estremo
  • estrema-index
  • filtro
  • carta geografica
  • rimescolare
  • merge
  • fossilizzato
  • mancato condizionata

Hanno anche una pagina sulla ricorsione che copre molti degli stessi schemi in modo ricorsivo.


14
... Speravo che i loop "estremi" fossero più, beh, estremi ...;)
Izkata

0

Penso di averlo sentito anche io. Da qualche parte nei video SICP o nel libro penso di aver sentito che la maggior parte dei programmi / algoritmi (se non tutti) possono essere espressi usando flussi e filtri. Gli stream iniziano alla lezione 6A.

Come per tutti i loop (per, mentre, do-while e così via) sono tutti implementati con etichetta, confronto e salto condizionale, quindi sono solo zucchero sintattico per facilitare la lettura e la comprensione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.