なぜこれを行うのですか:
(every (lambda (x) (equal "a" x)) "aaaaa")
この:
(every (lambda (x) (equal "a" x)) "a")
return NIL
、これは:
(every (lambda (x) (equal "a" x)) '("a" "a" "a" "a"))
を返しますT
か?every
私はすべてのシーケンスでうまくいったと思いました。
なぜこれを行うのですか:
(every (lambda (x) (equal "a" x)) "aaaaa")
この:
(every (lambda (x) (equal "a" x)) "a")
return NIL
、これは:
(every (lambda (x) (equal "a" x)) '("a" "a" "a" "a"))
を返しますT
か?every
私はすべてのシーケンスでうまくいったと思いました。
いつでも自分で見つけることができます。インタラクティブな Lisp システムを使用すれば、テストはわずか数秒で完了します。
CL-USER 1 > (every (lambda (x) (equal "a" x)) "a")
NIL
上記は NIL を返します。
Common Lisp 関数DESCRIBE
を使用して、記述されたデータを取得します。
CL-USER 2 > (every (lambda (x)
(describe x)
(describe "a")
(equal "a" x))
"a")
#\a is a CHARACTER
Name "Latin-Small-Letter-A"
Code 97
Bits 0
Font 0
Function-Key-P NIL
したがって、の値x
は文字です。キャラクター#\a
。
"a" is a SIMPLE-BASE-STRING
0 #\a
NIL
"a" の型はSIMPLE-BASE-STRING
(ここでは LispWorks で) です。
の定義をEQUAL
見ると、文字と文字列は型が異なるため決して等しくないことがわかります。
CL-USER 3 > (equal #\a "a")
NIL