Common Lisp provides a rich set of facilities for performing input/output. All input/output operations are performed on streams of various kinds. This chapter is devoted to stream data transfer operations. Streams are discussed in chapter 21, and ways of manipulating files through streams are discussed in chapter 23.
While there is provision for reading and writing binary data, most of the I/O operations in Common Lisp read or write characters. There are simple primitives for reading and writing single characters or lines of data. The format function can perform complex formatting of output data, directed by a control string in manner similar to a Fortran FORMAT statement or a PL/I PUT EDIT statement. The most useful I/O operations, however, read and write printed representations of arbitrary Lisp objects.
Common Lisp содержит богатый функционал для выполнения операций ввода/вывода. Все эти операции производятся на различного вида потоках. Данная глава посвящена тому, как оперировать данными в потоках. Потоки обсуждаются в главе 21, а способы работы с файлами через потоки в главе 23.
Большинство операций ввода/вывода в Common Lisp’е читают и записывают буквы, но также есть функции и для бинарных данных. Есть простые примитивы для чтения и записи одного символа или строк данных. Функция format может выполнять сложное форматирование выходных данных, с помощью управляющей строки как в выражении FORMAT в Fortran’е или в PUT EDIT в PL/I. Однако, самые полезные операции ввода/вывода читают и записывает выводимые представления произвольных Lisp’овых объектов.