指定された入力に数字以外の文字が含まれているかどうかをチェックする関数を作成しようとしています。ただし、contract violation
Schemeの下でDrRacketにアクセスします。
コードは次のとおりです。
文字列を文字に分割する方法:
(define (breaking str) (list->vector (string->list str)))
数のベクトルを作成する:
(define myNumber (breaking "123498765"))
ここで私は与えられた数をチェックします:
(define (vectorFunc myVector)
(define i 0)
(do ()
((= i (vector-length myVector))) ; run until the end of the vector
(cond ((< (vector-ref myVector i) #\0) 'incorrect)
((> (vector-ref myVector i) #\9) 'also-incorrect))
(set! i (+ i 1)) ; inc "i+ by 1
); end of do
)
そしての出力(vectorFunc myNumber)
は:
. . >: contract violation
expected: real?
given: #\1
argument position: 1st
other arguments...:
#\0
>
どうしたの ?