Categorías de bucles 'for'

11

Recuerdo que una vez la lectura de algunas investigaciones donde se había analizado un conjunto de código C, y los resultados fueron que la gran mayoría de los forbucles se podría clasificar en unos cinco categorías, que corresponden a los equivalentes funcionales de map, filter, fold, etc.

Parece que ya no puedo encontrar este artículo / artículo. ¿Alguien puede señalarme?

stusmith
fuente
3
Encontré algo similar en el desbordamiento de la pila: stackoverflow.com/a/2647704/1009414 Tal vez allí encontrará información sobre este artículo.
Thaven
1
homomorfismos, catamorfismos y anamorfismos, etc. pueden valer un google, para bucles que no están en las listas
jk.

Respuestas:

11

Esta no es una coincidencia exacta para lo que estaba solicitando, pero creo que se acerca bastante a la raíz de su pregunta.

La página de este sitio en Loops discute una serie de patrones de bucle.

  • contando
  • recuento filtrado
  • acumular
  • filtrado-acumulado
  • buscar
  • extremo
  • índice extremo
  • filtrar
  • mapa
  • barajar
  • unir
  • fosilizado
  • condición perdida

También tienen una página sobre Recursión que cubre muchos de los mismos patrones de manera recursiva.


fuente
14
... esperaba que los bucles "extremos" fueran más, bueno, extremos ...;)
Izkata
0

Creo que también lo he escuchado. En algún lugar de los videos SICP o del libro, creo que escuché que la mayoría (si no todos) los programas / algoritmos se pueden expresar usando flujos y filtros. Las corrientes comienzan en la clase 6A.

En cuanto a todos los bucles (para, while, do-while, etc.), todos se implementan con etiqueta, comparación y salto condicional, por lo que son solo azúcar sintáctico para que sea más fácil de leer y comprender.

Sylwester
fuente