;;; En memoria al "código spaghetti".
(defun ejemplo-go()
(tagbody
etiqueta-del-ciclo
(print "¡No me portaré mal en clase!")
(go etiqueta-del-ciclo)))
(defun ejemplo-goto()
(tagbody
to ; etiqueta-del-ciclo
(print "¡Esto no es \"Código spaghetti\"!")
(go to)))
(defun ejemplo-goto()
(tagbody
to ; etiqueta-del-ciclo
(format t "~a~%" "¡Esto no es \"Código spaghetti\"!") ;; revisar los acentos
(go to)))
(defun ejemplo-goto()
(prog ()
to ; etiqueta-del-ciclo
(print "¡Seré bueno en clase!")
(go to)))
Para los que añoran los viejos tiempos...sin entrar en el "código spaghetti"
Como puede observarse, se mantiene el tradicional uso del go tanto en tagbody
como en prog y en progn
(defun ejemplo-goto()
(prog ((x 1))
alfa
(print x)
(setf x (+ 1 x))
(go alfa)))
P.D. Estos ejemplos son para recordar cómo se escribían los programas en los inicios de la programación, cuando todo era nuevo. Ahora conocemos otras formas de hacer lo mismo, pero de forma más clara, sin embargo, esto no nos impide recordar la prehistoria...
Estaría bien escribir una macro de manera que el siguiente código funcionara correctamente.
(Repite 10
(print "¡Hola amigos!"))