2017-07-29 10 views

Répondre

4

Les fonctions write-to-string and prin1-to-string faites ce que vous voulez:

 
> (read-from-string "(foo \"Hi\" 17)") 
(FOO "Hi" 17) ; 

> (prin1-to-string '(FOO "Hi" 17)) 
"(FOO \"Hi\" 17)" 
> (write-to-string '(FOO "Hi" 17)) 
"(FOO \"Hi\" 17)" 

La fonction write-to-string prend en outre des arguments clés qui vous permettent d'ajuster le résultat:

 
> (write-to-string '(FOO "Hi" 17) :case :downcase) 
"(foo \"Hi\" 17)" 
1

Cela semble fonctionner

(with-output-to-string (s) 
    (princ '(1 2 3) s)) 
+0

Notez que 'princ' omet les caractères d'échappement; donc faites attention si votre objet contient des chaînes par exemple. –