Sunteți pe pagina 1din 1

Lenguaje OZ, Sigue el Camino Amarillo, primer contacto con lenguaje de programacin esotrico ufff!!!

Seguramente hayas ledo por ah alguna vez Work smarter, not harder y estas ltimas semanas cursando Teora de Lenguaje cuyo libro gua es Concepts, Techniques and models of computer programming me top con un concepto de programacin que lleva el lema a no slo ahorrar recursos mentales sino tambin computacionales. Supongamos que necesitamos una estructura de datos, digamos una lista, que contenga TODOS los nmeros naturales pares (incluyendo el 0) para que sean accesibles a consulta con un L[pos] = numero par n pos. Con esta situacin se nos vienen dos cosas a la mente, NUNCA vamos a lograr completar la lista ni tampoco vamos a poder consultarla entera. Pero entendemos que en la prctica vamos a hacer consultas acotadas a cierto rango (no infinito) pero potencialmente muy grande. Computacionalmente completar una lista cuasi infinita es muy demandante de recursos. Entonces, cmo completamos una lista sin devorarnos recursos? No la completamos La idea de la Evaluacin Perezosa es que el clculo se haga nica y exclusivamente cuando se solicita el dato requerido. Veamos un poco de cdigo (el lenguaje es Oz): 1 2 3 4 5 declare Ints fun lazy {Ints N} N|{Ints N+2} end L={Ints 0} Para poder entender un poco el cdigo, hace falta explicar como Oz maneja las listas y hay varias maneras de verlo. Podemos ver la lista como un Head | Tail, donde el Head es el primer elemento de la lista y el Tail todo lo dems. Por ejemplo la lista [1 2 3 4] Head=1 Tail=[2 3 4] (como vemos el Tail es una lista, por lo que a su vez tambin tiene un Head y Tail).

S-ar putea să vă placă și