0
的問題是:我喜歡這個列表的列表清單:寫在文件的Common Lisp
(((1 2) (3 4) (5 6)) ((7 8) (9 0)))
我把它寫在一個文件,其中列出的每一個列表編號打印在這樣一行:
.......
1 2 3 4 5 6
7 8 9 0
......
......
意味着我可以有更多的列表清單。我想知道如何在不使用循環並使用with-open-file
,format
和遞歸的情況下實現這一點。每個數字之間都有一個空格或製表符,每個子列表的列表都會開始一個新行。 感謝
編輯:
我已經設法與這個代碼在同一行打印的(a b)
子列表:
(defun write_pfs (filename point)
(with-open-file (str filename
:direction :output
:if-exists :append
:if-does-not-exist :create)
(format str (format nil "~~{~~a~~^~C~~}~T" #\Tab) point)))
(defun write_points (filename points)
(mapcar #'(lambda (x) (write_point filename x)) points))
但後來我也沒辦法打印(((a b) (b c)) ((c d) (d e)))
每個子表,以另一條線。
到目前爲止您嘗試了什麼? – Renzo