@ agnasg

agnasg


Un post que se hizo esperar

07-03-2007 9:14 AM

yahoo está presentando problemas (esta página está alojada en geocities) , así que esta es la tercera vez que escribo esto (tuve que usar gmail como mecanismo de almacenamiento temporal del post, al menos más seguro). Decía que estos días he estado muy ocupado (no voy a repetir por qué, es un cuento muy largo), así que no me he podido dedicar a lo importante: programar juegos, escribir y leer cuentos y aprender un nuevo lenguaje de programación. ¿Cómo? Estuve buscando quién fue el que dijo que todo buen programador debe aprender al menos un nuevo lenguaje de programación al año, pero no lo encontré. Otro axioma que se aplica a los programadores es que son resolvedores (esta es una palabra que acabo de inventar) de problemas natos. Ejemplo de esto último es este blog donde el comentarista menciona que es increíble cómo muchos supuestos programadores en realidad no saben programar, y dice para demostrarlo, que una prueba muy simple que le coloca los aspirantes al cargo de programador, el 70% o algo así es incapaz de hacerlo: el problema es, mis estimados y desocupados lectores el siguiente: escribir un programa que escriba los números del 1 al 100. Pero si el número es divisible entre 3, el programa debe escribir Fizz. Si el número es divisible entre 5 debe escribir Fuzz, pero si es divisible por ambos debe escribir FizzFuzz. El blog se llenó con cientos de comentarios (ver aqui) de reales programadores que resolvieron el problema en cualquier lenguaje de programación imaginable (conté docenas de soluciones en C, C++, php, lisp, assembler, etc). Yo hice mi versión en bash, uno de los lenguajes script de Unix. Ud. debe ser un programador si está leyendo esto (asumo), le invito a resolv
er este problema en su lenguaje de programación favorito. Una observación: Ud. no debería tomarse más de 5 minutos en hacerlo. Claro, quizás le dedique otros diez minutos a refinarlo, y ponerlo más elegante (cosa que yo estuve haciendo durante media hora).

Ya antes he hablado que he estado estudiando nuevas posibilidades de lenguajes funcionales para enriquecer el lenguaje de definición de aventuras conversacionales que en estos momentos (es un decir) estoy desarrollando. En uns cuantos nanosegundos descarté Haskel, y debido a esta discusión (common lisp, hmm, que raro, gmail group está presentando problemas 500 Internal error igual que yahoo… algo está pasando) giré mis ojos 45 grados hacia Lisp. Yo estudié por primera vez Lisp a los 20 años y algo. Me pareció demasiado recursivo, lo cual por aquella época me parecía malo, porque la primera vez un profesor nos explicó eso (el peor profesor que he conocido en toda mi vida) nos lo presentó como algo difícil de entender, cuando la realidad que es el concepto más simple que hay, la vida está llena de recursión. Inclusive, este comics de xkcd sugiere que Dios programó el universo en Lisp…).

Como quiera que sea, estoy comenzando a estudir Lisp nuevamente. Algo tendré que hacer con los paréntesis, el caracter más usado en todos los programas lisp, y justamente lo que me ha hecho correr despavorido todas las veces que he intentado acercarme a lisp (afortunamente hay cientos de caminos a Lisp). Ya hablaré algo sobre mis avances más adelante.

Enlaces que no se hacen esperar