Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
それmyVectorがベクトルでiあり、インデックスであるとすると、これを行うと:
myVector
i
(= (vector-ref myVector i) #\.)
私は得る:
=: contract violation expected: number? given: #\. argument position: 1st other arguments...: #\.
ロケーションの文字iが であるかどうかを確認するにはどうすればよい.ですか?
.
文字を数値に変換しないでくださいchar=?。ドキュメントの手順を使用してください。
char=?
すべての引数が eqv? の場合、#t を返します。
特にあなたの例では:
(define myVector #(#\1 #\. #\2)) (define i 1) (char=? (vector-ref myVector i) #\.) => #t
ここ数日の質問のいくつかは、文字または文字列の操作に関連していました。これらの 主題を扱っているドキュメント ページをよく確認することをお勧めします。
編集:これは、ベクトルが文字ではなく数値であると誤って想定していました。オスカーの答えを使用してください。
数値を文字に、またはその逆に変換する必要があります。
例えば:
(= (vector-ref myVector i) (char->integer #\.))
または
(char=? (integer->char (vector-ref myVector i)) #\.)