Algorithm 当我尝试测试空列表时,为什么在Scheme中出现错误?

Algorithm 当我尝试测试空列表时,为什么在Scheme中出现错误?,algorithm,recursion,scheme,Algorithm,Recursion,Scheme,当我运行下面的代码时,我在下面得到了这个TypeError。我想这是因为我试图用“null”来测试一个空列表。为什么会导致错误 TypeError:无法读取未定义的[NumberLister,NumberLister,NumberLister,NumberLister,NumberLister,car]的属性“apply” 通常,在if表达式的后续部分或备选部分中不能放置多个表达式,如果需要,请将表达式分组为begin形式。还有,(=(+1)2)有什么用?只需返回#t,如下所示: (define

当我运行下面的代码时,我在下面得到了这个TypeError。我想这是因为我试图用“null”来测试一个空列表。为什么会导致错误

TypeError:无法读取未定义的[NumberLister,NumberLister,NumberLister,NumberLister,NumberLister,car]的属性“apply”


通常,在
if
表达式的后续部分或备选部分中不能放置多个表达式,如果需要,请将表达式分组为
begin
形式。还有,
(=(+1)2)
有什么用?只需返回
#t
,如下所示:

(define NumberLister
  (lambda (numberList)
    (if (null? numberList)
        #t
        (begin     
          (display (car numberList))
          (display "\n")
          (NumberLister (cdr numberList))))))

通常,在
if
表达式的后续部分或备选部分中不能放置多个表达式,如果需要,请将表达式分组为
begin
形式。还有,
(=(+1)2)
有什么用?只需返回
#t
,如下所示:

(define NumberLister
  (lambda (numberList)
    (if (null? numberList)
        #t
        (begin     
          (display (car numberList))
          (display "\n")
          (NumberLister (cdr numberList))))))

你的递归是无条件的-检查括号。你的递归是无条件的-检查括号。