2016-12-26 7 views
1

シンボルをアルファベット順に比較しようとしていますが、これはできません。 特に、私はこれをしました。Common Lispでアルファベット順に記号を比較するには?

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

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

はあなたのCommon Lispではみんな

+2

問題の内容を詳しく説明できますか? – jkiiski

+1

@jkiiski "Cスタイル"の言語に慣れている場合、誤って混乱させる真の値である場合、 '0'はfalseのように見えます。 – Vatine

答えて

10

ありがとう、NILは偽であり、何かが真です。だからあなたのトランスクリプトで、0が不一致のインデックスを返すSTRING-LESSP Aは、単にTとNILを返すよりも、K.むしろ前であることを示す真の値、次のとおりです。

は不平等機能があれば真であるミスマッチのインデックスを返します文字列が等しくない場合はfalseです。 mismatch-indexがtrueの場合、string1の先頭からのオフセットとして、2つの部分文字列が異なる最初の文字位置を表す整数です。

0は、指定された文字列が一致しない最初の文字のインデックスです。

関連する問題