使用强制和延迟以生成和过滤样式生成偶数整数流



我正在尝试学习在Scheme中使用delayforce。我创建了一个函数来输出列表中的偶数。现在我正在尝试使用带有函数的delayforce。但我越来越error : unbound symbol : "delay" [].

有人可以解释我做错了什么吗?

(define (even-filter ls)
  (if (null? ls)  '()
    (filter even? ls)))
(even-filter '(1 2 3 4 5 88))
(let ((delayed (delay (even-filter '(1 2 3 4 5 88)))))
  (force delayed))

确保使用正确的语言,因为forcedelay都是原始形式,是标准语言的一部分。如果使用 Racket,请在左下角选择"从源语言确定语言",然后键入以下内容:

#lang racket
(define (even-filter ls)
  (filter even? ls))
(let ((delayed (delay (even-filter '(1 2 3 4 5 88)))))
  (force delayed))

它按预期工作:

'(2 4 88)

相关内容

  • 没有找到相关文章

最新更新