sábado, 25 de agosto de 2012

while en Emacs Lisp

Una plantilla para el comando while en Emacs Lisp sería la siguiente:
   (while true-or-false-test
      body...)
Este bucle se va a ejecutar siempre que el test nos de 'verdadero'.
Evaluar una lista vacía, nos da 'nil'.  Entonces puede ser útil para salir del bucle, simplemente evaluar una lista.  Si la lista está vacía, salimos del bucle.  Si no, continuamos con la ejecución del mismo que puede ser, por ejemplo, quitar un elemento de la misma, y así sucesivamente hasta encontrarnos con la lista vacía.

Otra posibilidad naturalmente es utilizar un contador.  Este contador a medida que va ejecutándose el bucle, va decreciendo hasta llegar a un valor que ocasionará que el test de falso y así salir del bucle.

El test puede ser una expresión del tipo (< contador numero-deseado) que va a devolver t de verdadero si el valor de contador es menor que el del número deseado.
inicializar contador
(while (< contador numero-deseado)           ; test
   body...
   (setq contador (1+ contador)))            ; incremento

El valor inicial del contador suele ponerse en 1.

No hay comentarios:

Publicar un comentario