2017-05-26 20 views
0

だが、私はこの1つのようなリストを持っているとしましょうもちろん、これはエラーを返しますが、#tなどを返すことができます。スキーム文字比較

ありがとうございました!

+0

「r」、「x」のシンボルにアクセスする方法'car'、' cadr'、 'caddr'のように' nd '-'を使いますか? – Sylwester

+0

いいえ、私はどのように私は実際に 'エラー'を返すので、** r **と** r **を比較しているかのように、 –

+1

'(定義する(テストを区別する)(等しい?(車のテスト) '))'と書くべきです。 – Renzo

答えて

2

コードに引用されていないシンボルは、リストの比較において変数

(define r 'x)  ; define the variable r to be the symbol x 
(eq? (car test) r) ; ==> #f (compares the symbol r with symbol x) 
(eq? (cadr test) r) ; ==> #t (compares the symbol x with the symbol x) 
(eq? (car test) 'r) ; ==> #t (compares the symbol r with the symbol r) 

シンボルある

(define test-list '(fi fa foo)) 
(define test-symbol 'fi) 
(eq? (car test-list) test-symbol) ; ==> #t (compares fi with fi) 
(eq? 'fi 'fi)      ; ==> #t (compares fi with fi) 

文字列の比較(質問のタイトルが文字ではない記号についてです)での文字:

(define test-string "test") 
(define test-char #\t) 
(eqv? (string-ref test-string 0) test-char) ; ==> #t (compares #\t with #\t) 
(eqv? #\t #\t)        ; ==> #t (compares #\t with #\t) 
+0

ありがとう!あなたの答えは本当に役に立ちます。 –