What's the difference between write, print, pprint, princ, and prin1?

Electric Coffee picture Electric Coffee · Nov 3, 2013 · Viewed 10.2k times · Source

I'm getting into some Lisp, and I've come across various different functions that to me appear to be doing the same thing... Namely printing to console... So what exactly is the difference between all those different functions?

Answer

Rainer Joswig picture Rainer Joswig · Nov 3, 2013

This is answered here: http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_pr.htm

  • write is the general entry point to the Lisp printer.
  • prin1 produces output suitable for input to read.
  • princ is just like prin1 except that the output has no escape characters. princ is intended to look good to people, while output from prin1 is intended to be acceptable for the function read.
  • print is just like prin1 except that the printed representation of object is preceded by a newline and followed by a space.
  • pprint produces pretty output.