Вы можете написать разделитель самостоятельно, e. г. (write ", ")
. Вы также можете написать (зависимый от платформы) разделитель строк с помощью (terpri)
.
Что касается format
, вы можете сначала обойтись некоторым базовым использованием:
(format <stream> <template> <args…>)
<stream>
- это то место, куда должен идти вывод. Для стандартного вывода используйте t
. Для записи в файл вы должны использовать поток, созданный with-open-file
здесь.
<template>
- строка шаблона. Это просто строка, но символ ~
особенный. Для начала просто используйте ~a
везде, где вы хотите вставить аргумент.
<args…>
- это ровно столько же аргументов, сколько вы использовали ~a
выше.
Используя этот простой набор инструментов, вы можете сделать: (format t "~a, " (q x))
для каждого элемента.
Формат имеет много других возможностей, e. г. он может перебирать список сам по себе, делать разные выходные форматы и экранировать или даже расширяться пользовательскими функциями. Посмотрите это в гиперспецификации (например, на clhs.lisp.se).