Tengo el siguiente código de Common Lisp:¿Cuándo se imprime el formato en Common Lisp?
(defun micro-read-eval-print()
(format t "Micro > ")
(let ((form (read-line)))))
Cuando lo ejecuto, me sale el siguiente:
CL-USER> (micro-read-eval-print)
(m-quote a)
Micro > NIL
Tenga en cuenta que he escrito en "(m-cotización a)", mientras que el Interpretación del intérprete Lisp "Micro> NIL".
Ahora, habría esperado que estos eventos sucedieran en el orden inverso. Hubiera esperado que "Micro>" se imprimiera primero, ya que la declaración de formato es lo primero. ¿Por qué no se imprime primero? ¿Y qué debo hacer para asegurarme de que se imprima primero?
Correcto, las implementaciones pueden usar flujos de E/S almacenados en búfer y no es necesario forzar la salida después de un formato o antes de una lectura. Entonces, para el código portátil uno tiene que llamar algo como salida de fuerza o salida final. –