2016-12-26 50 views
1

我试图比较一个符号到另一个字母,但我不能这样做。 特别是,我已经做到了。如何在Common Lisp中按字母顺序比较符号?

CL-USER 1 > (string-lessp 'k 'a) 
NIL 

CL-USER 2 > (string-lessp 'a 'k) 
0 

谢谢你们

+2

你能详细说明问题是什么吗? – jkiiski

+1

@jkiiski如果你习惯于使用“C风格”的语言,那么'0'看起来就像是假的,当它只是一个意外混淆的真实值。 – Vatine

回答

10

Common Lisp中,NIL是假的,别的都是如此。因此,在你的成绩单,0是一个真正的价值,表明A是K.而之前不是简单地恢复T和NIL,STRING-LESSP返回一个不匹配指数:

不平等函数返回一个不匹配指数是真的,如果字符串不相等,否则为false。当不匹配索引为真时,它是一个整数,表示两个子串不同的第一个字符位置,作为从string1开始的偏移量。

0是指定字符串不同意的第一个字符的索引。

相关问题