Так как я чувствовал себя хорошо (и ностальгировал по схеме), я на самом деле пробежался по вашему коду, чтобы найти ошибки. Из того, что я вижу, есть 2 проблемы, которые не позволяют коду работать так, как следует:
Если я правильно понимаю ваш код (force exp)
должен оценить exp
, однако вы возвращаете его напрямую (без оценки). Так что это, вероятно, следует определить как (define (force exp) (exp))
Вторая проблема в вашей лямбде: (lambda() ((tylorElementCosine x) (+ n 1)) )
будет оценивать следующий элемент ряда Тейлора, тогда как он должен оценивать поток. Вы, вероятно, хотите что-то вроде этого: (lambda() (iter (+ n 1)) )
Я не проверял, верен ли вывод, но с этими изменениями он хотя бы работает. Поэтому, если с кодом возникнут другие проблемы, его следует использовать в формуле.
Однако я бы предложил, чтобы в следующий раз, когда вы захотите помочь с домашним заданием, вы хотя бы сообщили нам, где именно проявляется проблема и что вы уже пытались (сообщество недовольно «вот какой-то код, пожалуйста, исправьте его для меня» вопросы).