Я новичок в Scheme, поэтому простите за вопрос: у меня есть функция, которая вычисляет факториалы списка чисел, но она дает мне точку перед последним числом в результатах. Где я ошибаюсь?
код:
#lang scheme
(define fact
(lambda (n)
(cond
((= n 0) 1)
((= n 1) 1)
(else (* n (fact (- n 1)))))))
(define fact*
(lambda (l)
(cond
((null? (cdr l)) (fact (car l)))
(else
(cons (fact (car l)) (fact* (cdr l)))))))
выход:
> (fact* '(3 6 7 2 4 5))
(6 720 5040 2 24 . 120)