Lisp`alracterp`每次都返回nil


日耀九洲
2025-03-03 07:15:27 (1天前)


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

这段代码的输出是NIL

(打印(…

3 条回复
  1. 0# ℘ 宋唐 ℒº ѵ ℯ楚厦 | 2019-08-31 10-32




    我目前的理论是这样的

    c

    不是一个角色




    你不需要理论。 Lisp用于交互式使用,可以告诉你什么是东西。只要询问Lisp类型:




    1. CL-USER 11 > (type-of c)
      SYMBOL

    2. CL-USER 12 > (type-of c”)
      SIMPLE-TEXT-STRING

    3. CL-USER 13 > (type-of #\c)
      CHARACTER

    4. </code>

  2. 1# ikun | 2019-08-31 10-32



    您的

    c

    是一个带有名字的符号

    “c”

    。此名称是一个字符串,其中包含一个字符。



    字符文字写得像

    1. #\c
    2. </code>
    3. Common Lisp中:




    1. (characterp #\c)
      ? T

    2. </code>


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




    1. (= 1 (length (symbol-name c)))
      ? T

    2. </code>

登录 后才能参与评论