martes, 27 de mayo de 2008

Azúcar sintáctico para XSymbol

Llevo toda la tarde dando vueltas a la práctica de Inteligencia Artificial de la universidad. Supuestamente hay que programarla en Lisp, aunque la primera versión la hice en BlitzMax, y ahora la estoy reprogramando en mi lenguaje funcional, XSymbol.

Ya le metí unas cuantas funciones nativas al lenguaje, al menos las necesarias para desarrollar la práctica, y un agradable añadido a la sintaxis.

Como había comentado en este post, XSymbol recibe un sólo parámetro en sus funciones. Si queremos pasar varios, los agrupamos en una lista y la enviamos. El problema es que para después acceder a cada uno de estos parámetros, lo tenemos que hacer leyendo el índice correspondiente de la lista, lo cual es un poco incómodo.

Para solucionarlo, he añadido un azúcar sintáctico al lenguaje que permite dar nombre a los elementos de una lista que recibimos como parámetro, y acceder a ellos por su nombre. Así, lo que antes sería:

@mifuncion lista

print get(lista 1)

print get(lista 2)

print get(lista 3)

;

Ahora queda simplemente como:

@mifuncion (p1 p2 p3)

print p1

print p2

print p3

;

No hay comentarios: