文字列で表される整数を取得する関数を作成し、彼のすべての文字が数字であるかどうかを確認し、それに応じて#t
\を返すようにしてい#f
ます。それがコードです-
(define (splitString str) (list->vector (string->list str)))
(define myVector 0)
(define flag #t)
(define (checkIfStringLegal str) (
(set! myVector (splitString str))
(do ( (i 0 (+ i 1)) ) ; init
((= i (vector-length myVector)) flag) ; stop condition
(cond ((>= 48 (char->integer (vector-ref myVector i)) ) (set! flag #f))
((<= 57 (char->integer (vector-ref myVector i)) )(set! flag #f))
)
)
)
)
説明はほとんどありません-
(list->vector (string->list str))
-文字列をcharリストに変換します。
(vector-ref myVector i)
myVector
--その場所からのchar i
。
実行はOKですが、この関数を使おうとすると、次のよう(checkIfStringLegal "444")
になります-
application: not a procedure;
expected a procedure that can be applied to arguments
given: #<void>
arguments...:
#t