Common Lisp/Функцiї виводу

Матеріал з Вікіпідручника

Функції виводу у Common Lisp[ред.]

Функції виводу передають результат в поточний поток виводу (COS - Current Output Stream).

(PRIN1 obj)[1]
Передає символьне представлення об’єкту в COS і повертає об’єкт. Функція друкує символи використовуючи їх P-імена. Друк відбувається згідно з поточною системою числення. Змінна *PRINT-POINT* контролює максимальну кількість десяткових цифр для зображення на екрані дисплею.
(PRINC obj)[1]
Працює як і PRIN1, але P-імена виводяться з контрольними символами. Значення контрольної змінної *PRINT-ESCAPE* при виклику PRINC стає рівним T.
(DEFUN PRINC (obj *PRINT-ESCAPE*)
  (SETQ *PRINT-ESCAPE* T)
  (PRIN1 obj))
(WRITE-BYTE n потік)[2]
Записує байт n в переданий бінарний потік потік. Параметр потік є не обов'язковим.
(TERPRI потік)[3]
Передає у вказаний потік потік символ нового рядка. Параметр потік є не обов'язковим.
(PRINT obj потік)[1]
Для виводу виразів можна використовувати функцію PRINT. Вона має один аргумент. При виклику цей аргумент обчислюється, а потім виводиться його значення. Перед виводом аргумента відбувається перехід на новий рядок, а після виводу аргумента друкується проміжок. Значенням функції є значення аргумента. Побочним ефектом функції PRINT є друк повертаємого значення. Функцію PRINT можна визначити так:
(DEFUN PRINT (x)
  (TERPRI) (PRIN1 x) (PRINC  ) )
(WRITE-STRING рядок), (WRITE-LINE символ)[4]
В COS виводиться вказаний рядок. Функція WRITE-LINE після виводу рядка в COS автоматично виконує перехід на новий рядок командою (TERPRI).

Примітки[ред.]

  1. 1,0 1,1 1,2 Common Lisp HyperSpec, Function WRITE, ....
  2. Common Lisp HyperSpec, Function WRITE-BYTE.
  3. Common Lisp HyperSpec, Function TERPRI, ....
  4. Common Lisp HyperSpec, Function WRITE-STRING,....