抄来的。我懒得翻译了。一句话:

eq? 只有在两个参数指向同一个对象时才为 #t. 它跟 eqv? 的区别 只能在不同的 Scheme 实现里体现出来。

eq? 可以判断两个变量是不是指向同一个对象。这样有很多用处。

定义独一无二的对象。eq? 用于比较两个变量是否指向同一个对象。 所以如果你的程序里需要一个独一无二的对象用来表示某种东西, 就可以把它定义为一个 list 这个 list 里面只有一个 symbol 就是它自己。这种独一无二的对象有什么好处?举一个例子:

以后遇到一个对象,就用一个函数 invisible-space? 函数来判断它 是否是我们这个独一无二的对象:

*invisible-space* 是用来在输入的 stream 中 表示一个 TeX 命令的开始(大概是这样吧),如果我们使用任何一个 字符,比如 * & 甚至那些不可打印的字符,来表示这个“开始”, 那么万一输入文档中真的出现了这个符号呢?我们就会出现很多错误 的命令开始。

所以,用这种“独一无二”的对象,可以避免出现这种问题。