Во-первых, это домашняя работа, но я просто ищу подсказку или псевдокод о том, как это сделать.
Мне нужно сложить все элементы в списке, используя рекурсия .Тем не менее, он должен вернуть пустой набор, если он обнаружит в списке что-то, что не является числом.Вот моя попытка:
(DEFINE sum-list
(LAMBDA (lst)
(IF (OR (NULL? lst) (NOT (NUMBER? (CAR lst))))
'()
(+
(CAR lst)
(sum-list (CDR lst))
)
)
)
)
Это не удается, потому что он не может добавить пустой набор к чему-то другому.Обычно я просто возвращаю 0, если это не число, и продолжаю обрабатывать список.