Scheme 如何检查球拍的两个功能是否相等?

Scheme 如何检查球拍的两个功能是否相等?,scheme,racket,Scheme,Racket,在尝试遍历这样的列表时,”((a+b)+(c+d)),我将在标识符上着陆,+,不知道如何验证它是加号,而不是像/或*这样的其他函数 如何验证我遇到的加号实际上是加号?首先+是符号,而不是函数。这一点很明显,如果您计算变量+,您将看到变量后面的值。如果计算出一个符号,则它将打印出一个符号 所以你真正的问题是如何检查一个符号是否与另一个符号相同。Scheme中的符号是unqiue,因此,如果两个符号看起来相同,则它们是相同的符号。您可以使用eq?来检查: (define plus '+) (eq?

在尝试遍历这样的列表时,
”((a+b)+(c+d))
,我将在标识符上着陆,
+
,不知道如何验证它是加号,而不是像
/
*
这样的其他函数


如何验证我遇到的加号实际上是加号?

首先<
(a+b)
中的code>+是符号,而不是函数。这一点很明显,如果您计算变量
+
,您将看到变量后面的值。如果计算出一个符号,则它将打印出一个符号

所以你真正的问题是如何检查一个符号是否与另一个符号相同。Scheme中的符号是unqiue,因此,如果两个符号看起来相同,则它们是相同的符号。您可以使用
eq?
来检查:

(define plus '+)
(eq? plus '+) ; ==> #t
(eq? plus '-) ; ==> #f