Stream Mandelbrot套入方案

Stream Mandelbrot套入方案,stream,scheme,set,mandelbrot,Stream,Scheme,Set,Mandelbrot,我想知道是否有人对编写mandelbrot流有什么建议。我为自己编写了以下函数以提供帮助: (define (make-complex a b) (cons a b)) (define (real-coeff c) (car c)) (define (imag-coeff c) (cdr c)) (define (c-add c d) (make-complex (+ (real-coeff c) (real-coeff d)) (+ (imag

我想知道是否有人对编写mandelbrot流有什么建议。我为自己编写了以下函数以提供帮助:

(define (make-complex a b) (cons a b))
(define (real-coeff c) (car c))
(define (imag-coeff c) (cdr c))
(define (c-add c d)
      (make-complex (+ (real-coeff c) (real-coeff d))
                   (+ (imag-coeff c) (imag-coeff d))))
(define (c-mult c d)
    (make-complex (- (* (real-coeff c) (real-coeff d))
                  (* (imag-coeff c) (imag-coeff d)))
               (+ (* (real-coeff c) (imag-coeff d))
                  (* (imag-coeff c) (real-coeff d)))))
(define (c-length c)
   (define (square x) (* x x))
        (sqrt (+ (square (real-coeff c))
              (square (imag-coeff c)))))

我有fz(x)=x2+z。流应该返回:a、fz(a)、fz(fz(a))、fz(fz(a)))。我对如何使用我编写的函数来创建具有此输出的流感到困惑。有没有人对如何处理这个问题有一些好的建议?

正如uselpa所说,这个方案有内置的复数。您提到的功能提供如下:

  • 做成矩形
  • 真实部分
  • imag部件
  • +
  • *
  • 幅值

至于你问题的第二部分,什么是
z
?在不知道自己想要什么的情况下很难回答这个问题。

正如uselpa所说,这个方案有内置的复数。您提到的功能提供如下:

  • 做成矩形
  • 真实部分
  • imag部件
  • +
  • *
  • 幅值

至于你问题的第二部分,什么是
z
?在不知道自己想要什么的情况下很难回答这个问题。

z
的值开始,将函数
fz(x)
设置为:

(define (make-fz z) (lambda (x) (+ z (* 2 x))))
现在,使用srfi-41流库,定义一个流,正如您所指出的: 试试看(使用
0的
z
):

注意:
stream iterate
的定义如下:

(define-stream (stream-iterate fz a)
  (stream-cons a (stream-iterate fz (fz a))))

z
的值开始,并使函数
fz(x)
类似于:

(define (make-fz z) (lambda (x) (+ z (* 2 x))))
现在,使用srfi-41流库,定义一个流,正如您所指出的: 试试看(使用
0的
z
):

注意:
stream iterate
的定义如下:

(define-stream (stream-iterate fz a)
  (stream-cons a (stream-iterate fz (fz a))))

您知道Scheme内置了对复数的支持吗?您知道Scheme有第三方库对流的支持吗?我不知道这两件事。我从这篇文章中学到了很多。你知道Scheme内置了对复数的支持吗?你知道Scheme有第三方库对streams的支持吗?我不知道这两件事。我从这篇文章中学到了很多。因为
(stream->list(stream take nx))
是一个常见的用例,所以有一个简写:
(stream->list nx)
。因为
(stream->list(stream take nx))
是一个常见的用例,所以有一个简写:
(stream->list nx)