lunes, abril 18, 2005

Continuaciones para cascarrabias

Suelo consultar el blog de Sam Ruby, porque tiene comentarios breves pero muy interesantes. En este caso se me escapó fue un articulillo un poco más largo titulado "Continuations for Curmudgeons" (continuaciones para cascarrabias). Me ha resultado muy instructivo ¿Seré un cascarrabias de esos? :) Tiene ejemplos en diversos lenguajes populares y va paso a paso explicando cosas como paso por valor o por referencia, continuaciones, closures y cosas similares. Interesante. Visto, como siempre, vía LtU


La misma entrada en BP

3 comentarios:

Juanjo Navarro dijo...

Me ha parecido muy interesante ese artículo. Yo creo que también soy un cascarrabias de esos porque son unas técnicas que nunca he utilizado.

He entendido todos los ejemplos menos el de Fibonacci en Python.

¿Alguien me puede explicar pasito a pasito cómo funciona este código, por dónde va el thread de ejecución, etc? (ya se lo que hace, lo que quiero es saber cómo lo hace)

mig21 dijo...

yo también soy un cascarrabias y me costó bastante pillarlo :)

A ver si es así:

Primero busqué el significado de yield en Python y resulta que automáticamente te convierte una función en generador, por lo que yo entiendo una función que se guarda el contexto para posteriores llamadas...

Y así, mágicamente, se consigue el resultado, sin variable globales que harían el código no reentrante y sin tener que pasar el estado por referencia o sin hacerse una clase...

Bonito, pero para los cascarrabias no entrenados un poco sutil, verdad :)

Saludos

Juanjo Navarro dijo...

Ahora lo entiendo. Lo que se me escapaba es que el for aplicado a un iterator en realidad es el equivalente a un while (it.next()).

Mucho mejor :-).

Es una técnica interesate y muy potente.