我正在尝试学习在Scheme中使用delay
和force
。我创建了一个输出列表中偶数的函数。现在我尝试将delay
和force
用于函数。但是我得到了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))
答案 0 :(得分:0)
确保您使用的是正确的语言,因为force
和delay
都是原始形式,是标准语言的一部分。如果使用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)