Lisp`alracterp`每次都返回nil

Ced*_*ens 1 lisp common-lisp

我有一个程序,想检查列表中的哪些元素是字符.但是,我永远无法做出characterp谓词T.

这段代码的输出是 NIL

(print (characterp 'c))
Run Code Online (Sandbox Code Playgroud)

我现在的理论是,这c不是一个字符,而是一个不是数字或符号的原子.如果我使用的是不合适的谓词,T当我传递"字符"时,哪个谓词可以帮助我返回NIL

Sva*_*nte 8

c是一个带有名字的符号"c".此名称是一个字符串,其中包含一个字符.

字符文字就像#\cCommon Lisp 一样编写:

(characterp #\c)
? T
Run Code Online (Sandbox Code Playgroud)

如果你想要问一个问题"这是一个名字长度为1的符号吗?",你需要这样说:

(= 1 (length (symbol-name 'c)))
? T
Run Code Online (Sandbox Code Playgroud)