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

Common Lisp: read each input character as a list element

这里是 Lisp 新手。

我想从standard-in读取一串字符如:

aabc

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

(a a b c)

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

我创建了这个函数:

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

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

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

(loop
   for x = (string-upcase (string (read-char)))
   while (not (equal " " x))
   collecting (intern x))

请注意大写是因为 CL 中的符号不​​区分大小写并且默认情况下由 reader 大写。

开始:首先使用 coerce 将字符串转换为字符列表,然后 mapcar 将每个字符转换为字符串.

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