gpt4 book ai didi

scheme - Racket 中的流

转载 作者:行者123 更新时间:2023-12-04 04:50:23 25 4
gpt4 key购买 nike

谁能帮助我更好地了解如何编写流?

我知道流是一个无穷的值序列,而我学到的对它们进行编程的方式是将它们表示为一个thunk,在调用时会产生一对(1)序列中的第一个元素,而(2)一个thunk表示第二个到第一个无穷大元素的流

例如:

(define powers-of-two
(letrec ([f (lambda (x) (cons x (lambda () (f (* x 2)))))])
(lambda () (f 2))))

我在这里了解到它只是产生2的幂,并且要访问这些幂,例如,调用 (car (powers-of-two))将导致 2,调用 (car ((cdr (powers-of-two))))将导致4

现在,我正在尝试编写一个称为 red-blue的流,该流在字符串 redblue之间交替,但是我对如何构造它感到有些困惑

最佳答案

为了对Scheme中的流有一个一般的了解,我建议在SICP书中的§3.5 Streams部分。它将教您解决与流相关的问题(例如问题中的问题)的基本概念。

关于问题中的问题,以下是解决此问题的一般思路:

  • 构建两个无限流,一个无限流仅生成字符串"red",另一个仅生成字符串"blue"
  • 合并两个流,从一个流中获取一个元素,然后从另一个流中获取一个元素(交替),此过程在SICP中称为interleave
  • 关于scheme - Racket 中的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13043207/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com