方案代码有什么问题?

时间:2011-08-21 18:01:40

标签: scheme

我正在尝试编写一个计划程序,它将标记列表作为输入,并将输出作为等级列表。

我得到了这个,...我不知道什么是错的我得到一个错误,object()作为第一个参数传递到cdr不是正确的类型....

这是代码

(define (grades list1)
  (cons (cond ((= (car list1) 100) 'S)
              ((= (car list1) 90) 'A)) 
        (cons (grades (cdr list1)) '())))

2 个答案:

答案 0 :(得分:5)

您错过了递归的基本案例。当参数为空列表时,您希望grades函数如何表现?这需要一个外部cond,测试是列表是空的并返回适当的内容。

答案 1 :(得分:0)

(define (grades list1)
  (cond((null? list1) `())
       (else(cons (cond ((= (car list1) 100) 'S)
                        ((= (car list1) 90) 'A)) 
                  (grades (cdr list1))))))