(let ((saved (with-output-to-string (out) (let ((a (make-hash-table))) (loop for key across "abcdef" for val from 1 do (setf (gethash key a) val)) (multiple-value-bind (create initialize) (make-load-form a) (with-standard-io-syntax (print create out) (print initialize out))))))) (format t "Wrote output:~%~a~&--END--~%" saved) (with-input-from-string (in saved) (let ((create-form (read in)) (init-form (read in))) (format t "Eval from create form:~%~2t~A~%and init form:~%~2t~a~%" create-form init-form) (let ((created (multiple-value-list (eval create-form))) (initialized (multiple-value-list (eval init-form)))) (format t "Create form returned values:~%~2t~a~%and init form returned values:~%~2t~a~%" created initialized))))) #| Wrote output: (MAKE-HASH-TABLE :TEST (QUOTE EQL) :SIZE (QUOTE 16) :REHASH-SIZE (QUOTE 1.5) :REHASH-THRESHOLD (QUOTE 1.0) :WEAKNESS (QUOTE NIL)) (SB-IMPL::%STUFF-HASH-TABLE #.(SB-IMPL::%STUFF-HASH-TABLE (MAKE-HASH-TABLE :TEST (QUOTE EQL) :SIZE (QUOTE 16) :REHASH-SIZE (QUOTE 1.5) :REHASH-THRESHOLD (QUOTE 1.0) :WEAKNESS (QUOTE NIL)) (QUOTE ((#\f . 6) (#\e . 5) (#\d . 4) (#\c . 3) (#\b . 2) (#\a . 1)))) (QUOTE ((#\f . 6) (#\e . 5) (#\d . 4) (#\c . 3) (#\b . 2) (#\a . 1)))) --END-- Eval from create form: (MAKE-HASH-TABLE TEST 'EQL SIZE '16 REHASH-SIZE '1.5 REHASH-THRESHOLD '1.0 WEAKNESS 'NIL) and init form: (%STUFF-HASH-TABLE # '((f . 6) (e . 5) (d . 4) (c . 3) (b . 2) (a . 1))) Create form returned values: (#) and init form returned values: (#) |#