【问题标题】:How can I get my code to return the value?如何让我的代码返回值?
【发布时间】:2019-05-02 23:02:47
【问题描述】:

"使用您的部分求和函数和 3a 中的序列来生成包含连续 sin(x) 的近似值"

我假设问题是让我返回值,但是,输出是“#”。我的代码有什么问题或我缺少什么?

我对上述 3a 的代码是:

(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))))

我用来调用 sin 近似的代码是:

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

【问题讨论】:

  • 值应该是流,好像是流。也许您需要查看什么是流以及它是如何工作的。

标签: scheme racket r5rs


【解决方案1】:

流无法直接显示,因为它是一个无限对象。

您可能想要做的是实现一个函数stream->liststream-take,它接受一个流和一个数字并从流中返回那么多元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2014-05-16
    • 2017-07-20
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多