У меня есть кодрекурсии в потоке
(define (add-ten s)
(let ([f (lambda(s) ((cons 10 (car (s))) (cdr (s))))])
(f s)))
ы может быть потоком, как полномочия
(define powers (letrec ([f (lambda (x) (cons x (lambda() (f (* x 2)))))])
(lambda () (f 2))))
Моя функция
(result-for-n-times powers 5)
дает «(2 4 8 16 32) ,
Теперь я хочу, чтобы определить поток (добавить-десять), который может взять на поток силы и дает другой stream.So, если я называю это
(result-for-n-times (add-ten powers) 5)
даст «((10. 2) (10. 4) (10. 8) (10. 16) (10. 32)).
Это также было одним из моих попыток, но дает мне сообщение об ошибке: не процедура; ожидаемая процедура, которая может быть применена к аргументам : '((10. 2). #) аргументы ...: [нет] –
Rea
@Rea mmm, no. ошибка находится в 'powers'. Это правильная версия: '(define powers (letrec ([f (lambda (x) (cons x (lambda() (f (* x 2)))))]) (f 2)))' –
Почему бы не просто добавьте ноль, как в реальной домашней работе? –