Subject: The history of print, prin1, and princ?
From: Erik Naggum <>
Date: Sun, 09 Dec 2001 06:33:02 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

  When teaching Common Lisp to a friend, a whole lot of interesting
  questions have come up, about half of which I have been able to answer
  right away, and the rest requiring quite a bit of research -- probably
  the best reward a teacher can get.  However, I am stumped for answers to
  both the name and functionality of the print family of functions.

  Why does print terminate with a space?  (Starting with a newline is an
  obvious feature, and is not questioend. :)  What functionality need does
  or did this fill?  Do people avoid print because of this?  (In Lisp 1.5,
  print prints one S-expression on a line or punch card.)

  How did the name "prin1" arise?  In Lisp 1.5, prin1 prints an atomic
  symbol, only, not an S-expression.  In Common Lisp, it not only takes an
  S-expression, but exists in a prin1-to-string version, as well, while
  print does not have a print-to-string version.

  And where did the name "princ" come from?  It is not equally ancient as
  the other functions, but also has a corresponding princ-to-string version.

  For now, I have recommended write, write-to-string, and format instead of
  the print family, but as names, print-object and print-unreadable-object
  still hang around despite not producing delimiters associated with print.

  The past is not more important than the future, despite what your culture
  has taught you.  Your future observations, conclusions, and beliefs are
  more important to you than those in your past ever will be.  The world is
  changing so fast the balance between the past and the future has shifted.