(defvar *db* (list (list :name "alice" :city "london") (list :name "carol" :city "oxford"))) ;; Why should we use with-standard-io-syntax? (with-open-file (out "my.db" :direction :output :if-exists :supersede) (with-standard-io-syntax (print *db* out))) (with-open-file (in "my.db") (with-standard-io-syntax (format t "~a~%" (read in)))) ;; I see not using with-standard-io-syntax also works fine. ;; I was able to create a "my.db" file without using with-standard-io-syntax ;; with SBCL and read the file back with CLISP. So is it really necessary to ;; use with-standard-io-syntax? (with-open-file (out "my.db" :direction :output :if-exists :supersede) (print *db* out)) (with-open-file (in "my.db") (format t "~a~%" (read in)))