2010-10-02 10 views
5

Die Practical Common Lisp Seite 25, erklärt die WITH-STANDARD-IO-SYNTAX wie folgt. "Es stellt sicher, dass bestimmte Variablen, die das Verhalten von PRINT beeinflussen, auf ihre Standardwerte gesetzt werden".Was ist MIT-STANDARD-IO-SYNTAX Makro?

Die Verwendung ist wie folgt.

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

Soll (Druck) in diesem Makro verwendet werden? Wenn nicht, was würde passieren?

Antwort

6

Verschiedene dynamische Variablen beeinflussen die von print erzeugte Ausgabe. with-standard-io-syntax stellt sicher, dass diese Variablen auf die Standardwerte gesetzt werden.

Zum Beispiel:

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

Drucke:

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

Es ist besonders wichtig, wenn Sie sie Dinge mit der Absicht, in der Lage, read später zu drucken sind (wie bei prin1).