Lisp Pretty Print Object на одной строке

Я пишу список списков в файл .dot для создания дерева. Кажется, что красивый принтер в lisp вставляет новые строки в вывод, поэтому, когда я запускаю точечный файл, новые строки затрудняют чтение сгенерированного графа.

Я просмотрел документацию format, но не смог ею воспользоваться.

Вот примерный список, который следует распечатать:

(((TOWER 'D 'C ^LEFT '0 ^RIGHT '2 ^BOTTOM '4 ^TOP '8)
  (TOWER 'C 'B ^LEFT '0 ^RIGHT '2 ^BOTTOM '2 ^TOP '6)
  (TOWER 'B 'A ^LEFT '0 ^RIGHT '2 ^BOTTOM '0 ^TOP '4) (ON 'D 'C)
  (ON 'C 'B) (ON 'B 'A))
 ((TOWER 'D 'C ^LEFT '0 ^RIGHT '2 ^BOTTOM '4 ^TOP '8)
  (TOWER 'C 'B ^LEFT '0 ^RIGHT '2 ^BOTTOM '2 ^TOP '6)
  (TOWER 'B 'A ^LEFT '0 ^RIGHT '2 ^BOTTOM '0 ^TOP '4) (ON 'D 'C)
  (ON 'C 'B) (ON 'B 'A))
 ((TOWER 'D 'C ^LEFT '0 ^RIGHT '2 ^BOTTOM '4 ^TOP '8)
  (TOWER 'C 'B ^LEFT '0 ^RIGHT '2 ^BOTTOM '2 ^TOP '6)
  (TOWER 'B 'A ^LEFT '0 ^RIGHT '2 ^BOTTOM '0 ^TOP '4) (ON 'D 'C)
  (ON 'C 'B) (ON 'B 'A))
 ((TOWER 'D 'C ^LEFT '0 ^RIGHT '2 ^BOTTOM '4 ^TOP '8)
  (TOWER 'C 'B ^LEFT '0 ^RIGHT '2 ^BOTTOM '2 ^TOP '6)
  (TOWER 'B 'A ^LEFT '0 ^RIGHT '2 ^BOTTOM '0 ^TOP '4) (ON 'D 'C)
  (ON 'C 'B) (ON 'B 'A))
 ((TOWER 'D 'C ^LEFT '0 ^RIGHT '2 ^BOTTOM '4 ^TOP '8)
  (TOWER 'C 'B ^LEFT '0 ^RIGHT '2 ^BOTTOM '2 ^TOP '6)
  (TOWER 'B 'A ^LEFT '0 ^RIGHT '2 ^BOTTOM '0 ^TOP '4) (ON 'D 'C)
  (ON 'C 'B) (ON 'B 'A))
 ((TOWER 'D 'C ^LEFT '0 ^RIGHT '2 ^BOTTOM '4 ^TOP '8)
  (TOWER 'C 'B ^LEFT '0 ^RIGHT '2 ^BOTTOM '2 ^TOP '6)
  (TOWER 'B 'A ^LEFT '0 ^RIGHT '2 ^BOTTOM '0 ^TOP '4) (ON 'D 'C)
  (ON 'C 'B) (ON 'B 'A)))

Вот как список печатается в файл:

(((TOWER 'D 'C
^LEFT '0
^RIGHT '2
^BOTTOM '4
^TOP '8)
(TOWER 'C 'B
^LEFT '0
^RIGHT '2
^BOTTOM '2
^TOP '6)
(TOWER 'B 'A
^LEFT '0
^RIGHT '2
^BOTTOM '0
^TOP '4)
(ON 'D 'C)
(ON 'C 'B)
(ON 'B 'A))
((TOWER 'D 'C
^LEFT '0
^RIGHT '2
^BOTTOM '4
^TOP '8)
(TOWER 'C 'B
^LEFT '0
^RIGHT '2
^BOTTOM '2
^TOP '6)
(TOWER 'B 'A
^LEFT '0
^RIGHT '2
^BOTTOM '0
^TOP '4)
(ON 'D 'C)
(ON 'C 'B)
(ON 'B 'A))
((TOWER 'D 'C
^LEFT '0
^RIGHT '2
^BOTTOM '4
^TOP '8)
(TOWER 'C 'B
^LEFT '0
^RIGHT '2
^BOTTOM '2
^TOP '6)
(TOWER 'B 'A
^LEFT '0
^RIGHT '2
^BOTTOM '0
...
...
...

Какие директивы format следует использовать для получения правильно отформатированного вывода?

Вот код, который я использую

(format stream "~A [shape=record, label=\"{~A|~A|~A}\"];~%" a b c d)

person myselfesteem    schedule 16.08.2015    source источник
comment
Возможно, вы захотите опубликовать воспроизводимый тестовый код...   -  person Rainer Joswig    schedule 16.08.2015
comment
Поможет ли это издание?   -  person myselfesteem    schedule 16.08.2015


Ответы (1)


Если вы установите для *print-right-margin* очень большое число, красивый принтер не должен вставлять новые строки.

По умолчанию nil означает ширину устройства (например, вашего монитора).

person sds    schedule 16.08.2015