PLT Scheme‘s documentation says:
The rationale for providing print
is that display and write both
have relatively standard output
conventions, and this standardization
restricts the ways that an environment
can change the behavior of these
procedures. No output conventions
should be assumed for print, so that
environments are free to modify the
actual output generated by print in
any way.
Could somebody please explain what that means for a noob and how is print and display different?
The thing is that programs can expect certain output formats from
writeanddisplay. In PLT, it is possible to change how they behave, but a little involved to do so. This is intentional, since doing such a change can have dramatic and unexpected result.OTOH, changing how
printbehaves is deliberately easy — just see thecurrent-printdocumentation. The idea is thatprintis used for debugging, for presenting code to you in an interactive REPL — not as a tool that you will rely on for output that needs to be formatted in a specific way. (BTW, see also the “~v” directive forformat,printf, etc.)