LISP - 将具有数组表示形式的字符串转换为数组
LISP - Converting a string with the representation of an array to an array
我有一个文件,每一行都有一个二维数组。我无法找到一种将文件解析为实际数组并将它们放入列表中的方法。
文件看起来像这样,数组在不同的行中,尽管它似乎不是:
您只需使用 with-open-file
打开文件进行阅读,然后使用函数 read
就可以了,只要有数组就可以。每个read
returns一个数组。使用 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 ]
我有一个文件,每一行都有一个二维数组。我无法找到一种将文件解析为实际数组并将它们放入列表中的方法。
文件看起来像这样,数组在不同的行中,尽管它似乎不是:
您只需使用 with-open-file
打开文件进行阅读,然后使用函数 read
就可以了,只要有数组就可以。每个read
returns一个数组。使用 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 ]