Categorias de loops 'for'

11

Lembro que uma vez lendo alguma pesquisa onde foram analisados um corpo de código C, e as conclusões foram que a grande maioria dos forcircuitos poderia ser categorizadas em cerca de cinco categorias, correspondentes aos equivalentes funcionais map, filter, fold, etc.

Não consigo mais encontrar este artigo / artigo. Alguém pode me apontar para isso?

stusmith
fonte
3
Encontrei algo semelhante no estouro de pilha: stackoverflow.com/a/2647704/1009414 Talvez lá você encontre algumas informações sobre este artigo.
Thaven
1
homomorfismos, catamorfismos e anamorfismos etc. podem valer a pena um google, para loops que não estão nas listas
jk.

Respostas:

11

Essa não é uma correspondência exata para o que você estava solicitando, mas acho que fica bem próximo da raiz da sua pergunta.

A página deste site no Loops discute vários padrões de loop.

  • contando
  • contagem filtrada
  • acumular
  • acumulado filtrado
  • procurar
  • extremo
  • índice extremo
  • filtro
  • mapa
  • embaralhar
  • fundir
  • fossilizado
  • condição perdida

Eles também têm uma página sobre Recursão que abrange muitos dos mesmos padrões de maneira recursiva.


fonte
14
... Eu estava esperando loops "extremas" seria mais, bem, extremo ...;)
Izkata
0

Eu acho que ouvi isso também. Em algum lugar nos vídeos do SICP ou no livro, acho que ouvi dizer que a maioria (se não todos) dos programas / algoritmos pode ser expressa usando fluxos e filtros. O fluxo começa na aula 6A.

Quanto a todos os loops (por enquanto, do-while e assim por diante), todos são implementados com rótulo, comparação e salto condicional, de modo que são apenas açúcar sintático para facilitar a leitura e a compreensão.

Sylwester
fonte