Archivos para Septiembre, 2007

Primeras experiencias con Scheme

Luego de mucho investigar y probar con diferentes lenguajes me aboqué a la tarea de aprender Scheme por las siguientes razones

Investigué, bajé tutoriales, libros, leí código… en fin, lo usual para cuando uno debe aprender solo. Qué es lo que me quedó de la última semana?

  • Muy simple. Me leí el R5RS en un día, y lo mejor es que se entiende.
  • Muy áspero. Me llevó varios intentos implementar una función map() por mi cuenta. Fortalece el carácter :)
  • Muy abandonado a su suerte. Carencia de librerías fundamentales para que sea un lenguaje mainstream. Todo está para ser implementado. Por suerte hay gente que se dedica a implementar cosas. Por ejemplo, la maravillosa librería SSAX.
  • Muy prometedor. Tiene un potencial increíble. Lástima que sea tan … Scheme :)

Los seguiré manteniendo al tanto de mis “descubrimientos”.

Dejar un comentario

Metaclases en Python (parte 1)

Para hacerlo corto, metaclases son “clases de clases”. En los lenguajes orientados a objetos, en donde las clases también pueden ser manipuladas como “objetos”, lo que actúa como plantilla de las mismas son las metaclases. Si desean leer más sobre el tema, en está plagado de artículos en otros lados que les darán una mejor idea de lo que yo puedo darles en éste momento.

Desde Python 2.2 el sistema de metaclases se ha mejorado mucho. Pero vamos a comenzar con algo simple.
Hagamos una función que retorne una clase. La función recibirá los componentes de la clase (atributos y métodos) en un diccionario.
Leer el resto de esta entrada »

Dejar un comentario

La humanidad!

Japoneses que se divierten viendo cómo afear chicas con una media en la cabeza. Una cultura superior definitivamente….

Dejar un comentario

Samba… japonesa (o el retorno de la cumbia samurai!)

No se han invantado palabras para ésto aún.

Sitio Oficial

Solo se puede decir una cosa: Japan is Superior

PD: Si se preguntan quién es el capo éste que nos regala su derroche de talento de manera tan generosa, se llama Ken Matsudaira, es actor, cantante y muy famoso en su tierra. Más data por supuesto en Wikipedia. Y como es lógico, esta canción fué un hitazo cuando salió allá por el 2004 y quedó en los rankings por casi un año. Un ejemplo a copiar. ;)

Dejar un comentario

Por qué la gente no usa Haskell?

Esto es una serie de pensamientos que me llegaron a la cabeza al leer éste ensayo sobre las fallas de Haskell.

Vamos a comenzar de a poco:

“The fact that Perl, Python and Ruby have become popular while Haskell has stayed a marginal language is a failure of the Haskell community. The Haskell community has failed to build a useful distribution Haskell, and it has failed to position the language as something that people can use to solve their problems.”

Leer el resto de esta entrada »

Comentarios (4)

Ya me estaba olvidando!

¡Feliz día del programador!

(Hoy es el día 256 del año).

Así que a todos aquellos que se dedican a transformar el caos de datos, redirigir numeritos y hacer de las computadoras algo más que electrodomésticos, felicitaciones, ánimo y que la Fuerza de Turing y Church los acompañen.

Comentarios (1)

Políticos nerd, otra señal de una cultura superior

Vía Kirai-net

Que un país tenga un ex-primer ministro con una web personal cuya portada es ésta:

Abe-geek
y que el próximo presidente sea un otaku declarado es señal inequívoca de que Japan is Superior.

Sin embargo, con la imagen ésa, yo me quedo con Abe. Un tipo que parece ser un buen sysadmin no puede ser tan malo ;) .

Dejar un comentario

Get a First Life!

http://www.getafirstlife.com/

Yo ya me suscribí. Ustedes que esperan ;) .

Dejar un comentario

Programación funcional en Python (01)

Como dijo McCarthy , LISP es un óptimo local en el espacio entre los lenguajes actuales, pero no por éso vamos a despreciar un lenguaje como Python. Más cuando están implementando de a poco tantas herramientas de lenguajes funcionales ;) .

En Python 2.5 existe la librería functools, que permite trabajar con Funciones de Alto Orden y Aplicación Parcial, o lo que es lo mismo, hacer currying.

Acá les voy a mostrar un pequeño ejemplo de lo divertido y útil que puede ser el currying creando wrappers para funciones.


import functools

def log (message, who):
    "Escribe el mensaje proveniente de del objeto 'who' "
    print '%s: %s' % (who, message)

def make_logger(an_object):
    "Crea un logger específico utilizando la representación en cadena de un objeto "
    return functools.partial (log, who=str(an_object))

class Un_Objeto:
    "Un objeto cualquiera"
    nombre = 'UnObjeto'
    mi_logger = None 

    def __str__(self):
        return str(self.nombre)

    def __init__(self):
        self.mi_logger = make_logger(self)

    def decir_hola:
         mi_logger(' Dice hola!')

Lo que hacemos con esto es definir una función “envoltorio” make_logger que devuleve una función log con uno de sus parámetros ya seteados. De esta manera podemos almacenar esa función como un miembro de nuestro objeto, y poder llamarlo siempre sin necesidad de de declararle a la función log quién la está llamando.

Aunque (por fortuna para aquellos que no tienen Python 2.5) un ejemplo como éste puede escribirse utilizando expresiones lambda de la siguiente manera:


def make_logger(an_object)
     return lambda s: log(s, who=str(an_object))

Funciona de la misma manera.

La idea de ésto es transformar funciones de muchos parámetros en funciones con menos parámetros para simplificarnos la vida y tener soluciones más elegantes.

Dejar un comentario

Star Wars en versión Los Simpson

Dejar un comentario

Entradas más antiguas »