Как я могу получить свой код для возврата значения? - PullRequest
1 голос
/ 03 мая 2019

"Используйте вашу функцию частичной суммы и последовательность в 3a, чтобы создать поток, содержащий последовательные приближения к греху (х) "

Я предполагаю, что вопрос заключается в том, чтобы получить возвращаемое значение, однако вместо этого выводится "# ". Что не так с моим кодом или что мне не хватает?

мой код для упомянутого 3а:

(define (sin-stream x)
  (define(fact n)
    (if (= n 1)
        1
        (* n (fact (- n 1)))))
  (define (sign k)
    (if (even? k)
        1 -1))
  (define (sin-str-term x k)
    (/ (* (sign k)
          (expt x (+ (* 2 k) 1)))
       (fact (+ (* 2 k) 1))))
  (define (sin-helper x k)
    (stream-cons (sin-str-term x k)
                 (sin-helper x (+ k 1))))
  (sin-helper x 0))

и код, который я использовал для функции частичной суммы:

(define (partial-sums s)
  (stream-cons (stream-car s)
           (add-streams (stream-cdr s) (partial-sums s))))

и код, который я использую для вызова приближения греха:

(define (sin-approx x)
  (partial-sums (sin-stream x)))

1 Ответ

0 голосов
/ 03 мая 2019

Поток не может быть отображен напрямую, потому что это бесконечный объект.

Возможно, вы захотите реализовать функцию stream->list или stream-take, которая принимает поток и число и возвращает егомного элементов из потока.

...