我试图编写一个函数,它获取一个整数,由字符串表示,并检查他的所有字符是否都是数字并相应地返回#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))
- 将字符列表转换为字符串。
(vector-ref myVector i)
myVector
- 来自at 位置的字符i
。
它运行正常,但是当我尝试使用这个函数时,就像(checkIfStringLegal "444")
我得到 -
application: not a procedure;
expected a procedure that can be applied to arguments
given: #<void>
arguments...:
#t