Common Lisp:将每个输入字符作为列表元素读取

时间:2015-10-10 12:21:55

标签: lisp common-lisp

Lisp新手在这里。

我想从标准中读取一串字符,例如:

aabc

我想将该输入转换为列表,其中每个字符都成为列表元素:

(a a b c)

我想将列表分配给全局变量text

我创建了这个函数:

(defun get-line ()
    (setf text (read)))

但这只会导致将单个符号分配给text,而不是将输入标记为符号列表。

请问实施get-line()的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

\\StringFileInfo\\<lang><codepage>\\ProductVersion

请注意,因为CL中的符号不​​区分大小写,并且默认情况下会被读取器升级。

答案 1 :(得分:1)

在这里:首先使用强制将字符串转换为字符列表,然后 mapcar 将每个字符转换为字符串。

(defun get-line ()
    (setf text (mapcar 'string (coerce (string (read)) 'list))))