LISP - 将具有数组表示形式的字符串转换为数组

LISP - Converting a string with the representation of an array to an array

我有一个文件,每一行都有一个二维数组。我无法找到一种将文件解析为实际数组并将它们放入列表中的方法。

文件看起来像这样,数组在不同的行中,尽管它似乎不是:

您只需使用 with-open-file 打开文件进行阅读,然后使用函数 read 就可以了,只要有数组就可以。每个readreturns一个数组。使用 loop 您可以 将它们收集起来 到一个列表中。

基本上是这样的:

(with-open-file (s filename)
  (let ((*read-eval* nil))
    (loop with eof = '#:eof
          for object = (read s nil eof)
          until (eq object eof)
          collect object)))

另请注意,每个数组是否独占一行并不重要。如果他们在一条线上,它仍然可以工作。表达式之间的 newline 对于 Lisp reader.[=15= 只是 whitespace ]