Вам нужно что-то сделать с данными, которые вы создаете. Возможно, вы хотите, чтобы первый элемент был обработан в результате списка, полученного из рекурсии:
(define (calcit x lst)
(if (= x 0)
'() ;; base case
(cons (floor (/ x (first lst)))
(calcit (modulo x (first lst)) (rest lst)))))
При создании списков в Схеме с рекурсией старайтесь избегать append
. Использование append
- это анти-паттерн. Узнайте, как работают списки Схемы, и обучайтесь, чтобы знать это близко. например, '((2 3) (4 5))
, если я спрашиваю вас, как получить 5
, вы должны подумать о том, чтобы ответить и ответить cadadr
почти сразу.