Что не так с кодом схемы? - PullRequest
0 голосов
/ 21 августа 2011

Я пытаюсь написать программу схемы, которая будет принимать список оценок в качестве входных данных и выводить результаты в виде списка оценок.

Я получил это далеко, .. я не знаю, что не так, я получаю ошибку, объект (), переданный в качестве первого аргумента для CDR, не правильный тип ....

здеськод

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

Ответы [ 2 ]

5 голосов
/ 21 августа 2011

Вам не хватает базового варианта для вашей рекурсии. Как вы хотите, чтобы ваша функция grades работала, когда аргумент представляет собой пустой список? Для этого требуется внешний cond, который проверяет, что список пуст и возвращает что-то подходящее, когда он есть.

0 голосов
/ 17 сентября 2013
(define (grades list1)
  (cond((null? list1) `())
       (else(cons (cond ((= (car list1) 100) 'S)
                        ((= (car list1) 90) 'A)) 
                  (grades (cdr list1))))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...