Как вы можете вызвать функцию несколько раз с форматированием в строке, чтобы записать в файл с общим lisp? - PullRequest
1 голос
/ 27 декабря 2011

Я пытаюсь создать XML-файл для Flam3, который содержит несколько форм.Я новичок в Common Lisp и уверен, что есть гораздо лучший способ сделать то, что я пытаюсь сделать.Вместо того, чтобы вызывать сексуальную функцию несколько раз, как я могу сделать быстрый и грязный цикл?

Вот код, о котором идет речь:

Ответы [ 2 ]

2 голосов
/ 27 декабря 2011

Вы имеете в виду что-то вроде этого:

(format my-stream "<test>~{ ~A~} </test>"
    (loop
        :repeat 10 
        :collecting (sexy)))
1 голос
/ 27 декабря 2011

Почему бы не сделать вывод напрямую?

(format t "~a ~a" (format nil "$~a$" 10) (format nil "$~a$" 20))

Выше генерируются две строки, а затем внешний формат печатает их.

Почему бы вместо этого не выполнить печать напрямую?1007 *

или даже

(format t "$~a$ $~a$" 10 20)

или что-то вроде

(format t "~{ $~a$~}" '(10 20))
...