Процедура формата Lisp - PullRequest
       15

Процедура формата Lisp

4 голосов
/ 21 ноября 2010

Я начинаю программировать на Лиспе и с трудом справляюсь с функцией Формат.

Моя цель - напечатать список целочисленных подсписков в виде N целых чисел для строки.Например:

'((1 2 3)
(4 5 6)
(7 8 9))

должно быть напечатано как

12 3
4 5 6
7 8 9

Я пытался использовать итерацию в процедуре форматирования, но мне это не удалось.

Я написал:

(format t "~{~S ~}" list)

Но при этом я получаю подсписки как «(1 2 3)» вместо «1 2 3», поэтому я попытался:

(format t "~:{ ~S ~}" list)

на этот раз я попал в подсписки, но напечатал толькопервый элемент, поэтому я вошел и переписал функцию:

(format t "~:{ ~S ~S ~S ~}" list)

Она работает для подсписков с 3 элементами, но как я могу заставить ее работать для n элементов?

Спасибо!

1 Ответ

9 голосов
/ 21 ноября 2010
(format t "~{~%~{~A~^ ~}~}"  '((1 2 3) (4 5 6) (7 8 9)))

печать

1 2 3
4 5 6
7 8 9
...