我想在文本文件中添加列表以將lisp綁定到某個變量。 例如 Mylist.txt包含: ((1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16) ) ,我想從該文件的讀取和並將此列表設置爲某個變量mylist。如何將文件中的列表添加到Lisp中
(defun readfile (fileName) (let ((in (open fileName :if-does-not-exist nil)))
(when in
(loop for line = (read in nil)
while line do (print line))
(close in)
)
))
(setf myList (readfile "list.txt"))
輸出應(myList中應當限定於): ((1 2 3 4) (5 6 7 8) (9 10 11 12) (13 14 15 16) )
我已經看到了關於這個stackflow的大部分答案,但非他們工作,例如我試着逐行讀取它,並使用收集,但似乎沒有給我正確的答案,因爲它收集的整個行,並把它作爲項目清單。
你能澄清你在做什麼嗎?你是否試圖從文件中讀取數據,並且你想要一個字符串?或者你想要一個列表?我以爲你想要一個清單,但最後一句話意味着你不需要清單。上面的代碼也不是逐行讀取,它讀取一個表達式。 – verdammelt
抱歉模糊不清。我正在嘗試從文件中讀取LIST,假定該文件有沒有任何錯誤的列表。例如LIST.TXT文件應包含 ((R DR DL L) (DR L O,DL) (DR UR UR U) (R URÚG)) ,我想設定數組列表這個值或列表。如果您仍然對此有疑問,請告知我。就我的代碼而言,我知道我正在以字符串的形式讀取它,因爲我不知道如何讀取整個文件。 – Sagar0921
如果您只想讀取文件中第一個文件的列表,只需調用'read'就可以完成這項工作。無需循環。您應該使用'with-open-file'而不是手動打開和關閉文件。 – jkiiski