【问题标题】:Char Comparison in Common LispCommon Lisp 中的字符比较
【发布时间】:2015-05-21 01:13:10
【问题描述】:

如何用 Common Lisp 比较字符? 我google了一下,发现有一些函数可以做比较,比如char=char/=char<char>char<=char>=。但是,我不能使用所有的功能,就像:

(char= 'a 'a)  
(char< 'a 'b)

如果我输入这些命令,CLISP 只会给我错误消息“参数 A 不是字符”。为什么“A”不是字符? 我必须像(char= #\a #\a) 这样写才能使其正常工作。 我想创建功能来进行字符排序。

谢谢。 对不起我的英语不好。

【问题讨论】:

    标签: sorting char comparison lisp common-lisp


    【解决方案1】:

    A 是一个符号,而不是一个字符。字符串函数将接受符号并使用符号的名称,但字符函数只接受真正的字符对象,这些对象使用#\ 语法输入。所以你可以这样做:

    (string< 'a 'a)
    (string< 'a 'b)
    

    供参考:

    • #\a => 字符
    • "a" => 字符串
    • a => 符号

    【讨论】:

      【解决方案2】:

      您可以像这样对字符列表进行排序。

      (sort (list #\b #\c #\a) #'char<)
      

      【讨论】:

      • 但是他没有字符列表,他有一个带有单字符名称的符号列表。
      猜你喜欢
      • 2016-07-30
      • 1970-01-01
      • 2017-06-19
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 2014-08-08
      相关资源
      最近更新 更多