Scheme 有没有办法检查给定的列表是否包含数字?

Scheme 有没有办法检查给定的列表是否包含数字?,scheme,racket,Scheme,Racket,我试图编写scheme程序来检查给定的列表是否由数字组成,也就是说,如果输入列表是由数字组成的,程序将返回true 我一直在试图找出我的代码出了什么问题 (define (is_num(lst)) (if (not (number? (car lst))) #f (is_num(cdr lst)))) 如果所有符号都是数字,则返回#t,如果任何符号不是数字,则返回#f。 例如: (isnum '(0 1 1 2)) ; will be #t (isnum '(0 'a 1 2)) ;

我试图编写scheme程序来检查给定的列表是否由数字组成,也就是说,如果输入列表是由数字组成的,程序将返回true

我一直在试图找出我的代码出了什么问题

(define (is_num(lst))
(if (not (number? (car lst)))
    #f
(is_num(cdr lst))))
如果所有符号都是数字,则返回
#t
,如果任何符号不是数字,则返回
#f
。 例如:

(isnum '(0 1 1 2)) ; will be #t
(isnum '(0 'a 1 2)) ; will be #f
你需要阅读()和(我建议用
cond
代替
if

你需要一个循环,否则你的递归将是无限的

(isnum '(0 1 1 2)) ; will be #t
(isnum '(0 'a 1 2)) ; will be #f