HAZ.MIENTRASlista_de_instrucciones
lista_de_prueba
DO.WHILElista_de_instrucciones
lista_de_prueba
Ejecuta repetidamente la lista_de_instrucciones
mientras que lista_de_prueba
evalúa a CIERTO.
HAZ.MIENTRAS evalúa lista_de_instrucciones
antes de evaluar lista_de_prueba
, así que siempre se ejecuta lista_de_instrucciones
al menos una vez.
El argumento lista_de_prueba
debe contener una expresión que evalúa a CIERTO o FALSO.
El hecho de que el argumento lista_de_prueba
es una lista pueda engañar porque debería contener exactamente una expresión.
Sólo es una lista para aplazar cuando se lo evalúa.
Por ser una lista, se necesita evaluarlo explícitamente con EJECUTA.
Esto permite que HAZ.MIENTRAS reevalúa lista_de_prueba
después de cada iteración, en lugar de sólo una vez.
HAZ "i 0
HAZ.MIENTRAS [HAZ "i :i+1 ESCRIBE :i] [:i < 3]
1
2
3