返回一个Scheme中可变对象的表达式?

时间:2011-02-17 05:26:22

标签: scheme mutable symbols procedure

您好我正在尝试编写一个函数,该函数将返回一个可变的表达式,并且可以用作过程。

例如:

(fooeq 1 2)会返回(eq? 1 2)

((fooeq 1 2))会返回#f

有没有办法编写一个可以转换为过程的符号表达式?

编辑:我知道了,谢谢你的回复。如果其他人想知道它是(eval p)。

1 个答案:

答案 0 :(得分:1)

我想你希望fooeq评估一个函数:

> (define (fooeq a b)
    (lambda () (eq? a b)))

> ((fooeq 1 2))
#f
> ((fooeq 1 1))
#t
> 

将一个或多个函数作为输入或输出函数的函数称为higher-order function