2016-12-26 79 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是指定字符串不同意的第一個字符的索引。

相關問題