Только начал со Схемы. У меня проблема с печатью на консоли. Простой пример печати списка:
(define factorial
(lambda (n)
(cond
((= 0 n) 1)
(#t (* n (factorial (- n 1)))))))
Я хочу печатать n
каждый раз, когда вызывается функция. Я понял, что я не могу сделать это в той же функции? Нужно ли мне вызывать другую функцию, чтобы я мог печатать?
begin
. Тело предложенияcond
может также содержать несколько выражений, так что вы можете просто вызвать тамdisplay
. 11.02.2012factorial
для этого? Тогда это будет выглядеть так:(define factorial (lambda (n) (cond ((= 0 n) 1) (#t (let ((result (* n (factorial (- n 1))))) (display n) (newline) result)))))
11.02.2012n
теперь печатается перед рекурсивным вызовом, вывод будет обратным. 11.02.2012(define factorial (n) ...)
синтаксически неверно: должно быть(define (factorial n) ...)
. 11.02.2012