字符
在LISP中,字符被表示为字符类型的数据对象。
可以记#前字符本身之前的字符的对象。例如,#一个表示字符a。
空格和其它特殊字符可以通过#前面的字符的名称前表示。例如,#空格代表空格字符。
下面的例子演示了这一点:
示例
创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:
(write 'a)
(terpri)
(write #a)
(terpri)
(write-char #a)
(terpri)
(write-char 'a)
当执行以上代码,它返回以下结果:
A
#a
a
*** - WRITE-CHAR: argument A is not a character
特殊字符
Common Lisp允许使用以下特殊字符在代码。他们被称为半标准字符。
字符比较函数
数字比较函数和运算符,如,< 和 >上字符不工作。 Common Lisp提供了另外两组的功能,在代码中比较字符。
一组是区分大小写的,而另一个不区分大小写。
下表提供的功能:
Case Sensitive Functions |
Case-insensitive Functions |
描述 |
char= |
char-equal |
检查如果操作数的值都相等与否,如果是的话那么条件为真 |
char/= |
char-not-equal |
检查如果操作数的值都不同,或没有,如果值不相等,则条件为真 |
char< |
char-lessp |
检查如果操作数的值单调递减 |
char> |
char-greaterp |
检查如果操作数的值单调递增 |
char<= |
char-not-greaterp |
如有左操作数的值大于或等于下一个右操作数的值,如果是则条件为真检查 |
char>= |
char-not-lessp |
如有左操作数的值小于或等于其右操作数的值,如果是,则条件为真检查。 |
示例
创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:
(adsbygoogle = window.adsbygoogle || []).push({});
(adsbygoogle = window.adsbygoogle || []).push({});
; case-sensitive comparison
(write (char= #a #))
(terpri)
(write (char= #a #a))
(terpri)
(write (char= #a #A))
(terpri)
;case-insensitive comparision
(write (char-equal #a #A))
(terpri)
(write (char-equal #a #))
(terpri)
(write (char-lessp #a # #c))
(terpri)
(write (char-greaterp #a # #c))
当执行以上代码,它返回以下结果:
NIL
T
NIL
T
NIL
T
NIL