我想将String变成列表。例如,http =>(h t t p)。

我尝试:

(defun string-to-list (s)
  (assert (stringp s) (s) "~s :questa non e una stringa")
  (coerce s 'list))

但是如果我这样做
(string-to-list "http")

结果:
(#\h #\t #\t #\p).

我可以删除#\吗?
提前致谢 :)

最佳答案

为什么要这么做?您要问的是将字符串(一维字符数组)拆分为符号列表。你真的想要那个吗?
#\h是打印的字符对象。

您可以不同地打印它们:

CL-USER 8 > (princ #\h)
h

CL-USER 9 > (prin1 #\h)
#\h

让我们使用PRINC打印列表:
CL-USER 10 > (map nil #'princ (coerce "Hello!" 'list))
Hello!

顺便说一句,由于字符串,向量和列表是序列,因此您可以直接在字符串上映射...
CL-USER 11 > (map nil #'princ "Hello!")
Hello!

关于lisp - 在普通Lisp中列出的不带#\的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9066750/

10-11 01:29
查看更多