[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: printing structures
- To: Miles Bader <email@example.com>
- Subject: Re: printing structures
- From: Robert W. Kerns <RWK@YUKON.SCRC.Symbolics.COM>
- Date: Sat, 4 Oct 86 21:16 EDT
- Cc: common-lisp@SU-AI.ARPA
- In-reply-to: <BMS.firstname.lastname@example.org>
Date: Sat, 4 Oct 1986 02:28:46-EDT
From: Miles Bader <email@example.com>
Of course, some people actually like to read in what they print. Why not
just give different values to *print-length*, *print-level* and
*print-circle* in your init file?
As Common Lisp is currently designed, this just breaks
programs that like to read in what they print.
We provide a macro, WITH-STANDARD-IO-ENVIRONMENT which
binds the I/O control variables to their standard values.
This provides a sorely needed decoupling between I/O
for inter-program communication and the user-interface.
It is far easier to wrap this one form around the
portion of your program which does I/O than it is to
figure out what variables it depends on, and bind each
of them. Even if you want a few non-standard bindings,
it's easier to start with the standard bindings and
rebind a few than to deal with each of them.
I >strongly< recommend this be adopted. Once it's
adopted, it's much easier to discuss changing
the default global bindings for the I/O control
variables to make the environment easier to use
interactively. Without it, we'll just get caught up
in the communications and compatibility issues.