2010-10-02 11 views
5

El Practical Common Lisp página 25, explica el CON-STANDARD-IO-La sintaxis de la siguiente manera. "Asegura que ciertas variables que afectan el comportamiento de PRINT se establecen en sus valores estándar".¿Para qué es la macro WITH-STANDARD-IO-SYNTAX?

el uso es como sigue.

(with-open-file (...) 
    (with-standard-io-syntax 
     (print ... 

¿Se debe (imprimir) en esta macro? Si no, ¿qué pasaría?

Respuesta

6

Diversas variables dinámicas afectan a la salida producida por print. with-standard-io-syntax garantiza que esas variables se establezcan en los valores predeterminados.

Por ejemplo:

(let ((list '(1 2 3 4 5 6 7 8 9 10)) 
     (*print-length* 5)) 
    (print list) 
    (with-standard-io-syntax 
    (print list))) 

Lienzo:

(1 2 3 4 5 ...) 
(1 2 3 4 5 6 7 8 9 10) 

Es particularmente importante si va a imprimir cosas con la intención de poder read más tarde (al igual que con prin1).