[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

replies to hash table comments

   Date: Tue, 24 May 88 17:31 EDT
   From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>

   Here's my problem: This is a slippery slope: today it's hash tables,
   tomorrow it will be random-states, next week it will be CLOS objects,
   where will it end?  Also bear in mind that I hate the #A and #S syntaxes
   and disable them for output whenever I can.  I just don't like seeing
   huge amounts of output shoved in my face.  That leaves me predisposed to
   oppose proposals like this one.

I think one of the major underrated features of lisp is that in
general you need not spend any of your programming/debugging efforts
writing code to format the objects you're manipulating. 

When I had to write in Fortan or Pascal, usually the first or second
task was to identify the data structures I was going to use, and
following that to write formatting code to be used for debugging.
Then as the structures changed I would (with growing annoyance) 
rewrite the formatters.  I remember those days with nausea. 

I also dislike huge amounts of output, but the proper mechanism is,
as you suggested, to elide the output on first showing and possibly
make it accessible in more detail later.  (Otherwise, why not argue
against the default format for lists, since some are very long.) 

More parameters to control the default elision would be a welcome
addition to the language/environment.  

  I'd really like to be able to set some global that would, for
  example, make any call to print and friends immediately terminate
  after 100 characters or two newlines were produced.  Or terminate
  when column 78 was reached.  Or put all the characters in a hidden
  buffer but only display the first 40 unless that buffer is explicitly
  visited.  Etc. 

  I also would like to be able to tell defstruct in some simple manner
  that a particular slot is always huge and uninteresting, so print it
  as #<hidden by popular request>.  Ideally, I should be able to
  toggle this suppression from, say, the inspector without having said
  anything about it in the defstruct definition.

It just doesn't seem that hard to come up with simple solutions for
the major offenders that spew unwelcome characters. 

BTW, until your message it never occurred to me there might not be a
simple way to make CLOS objects display their contents by default.  
I'd call it a misfeature if you can't.