sábado, 11 de agosto de 2007

Multiassign, (casi) procedimientos

Entre ayer y hoy implementé la primer estructura de iteración de alto nivel. Es algo así:

for e in a[..k..] {
e <- e + k - |a|
}

La semántica es ejecutar el bloque de código reemplazando a "e" por cada uno de los elementos en el arreglo "a". Este bloque no puede leer directamente elementos de "a" (sólo puede hacerlo mediante la variable "e"). Tampoco puede modificar variables (a excepción de "e" y cualquier otra variable local que se cree dentro del mismo bloque).

Esta estructura permite simplificar muchísimo la escritura y verificación de programas como: resetear un arreglo a 0, poner números de 1...N en un arreglo, poner números de N...1 en un arreglo, etc.

Por otra parte estuve empezando a implementar procedimientos. Esto está incompleto, cuando lo tenga andando comento los detalles.

No hay comentarios.: