【发布时间】:2016-10-27 15:27:40
【问题描述】:
我开始研究Scheme,很好奇内置程序是如何“配对”的?作品。我的意思显然是代码,因为我找不到查看内置程序代码的方法并且不知道如何编写它我在这里。 对“列表”有同样的问题吗?程序但设法自己编写,但在“配对”的情况下?不知道。谢谢!
【问题讨论】:
-
听起来你想看看你正在使用的方案实现的源代码。那么...您使用的是什么方案实现? :)
-
是的,先生! DrRacket)
-
pair?in Racket (我不知道方案)是一个原语。每个Scheme_Object *都有一个标签,说明它是什么类型。pair?查看该标签,如果它与对类型的值匹配,则返回#t。 -
所以这意味着这是一个原始的,我们不能用其他方式定义它?
-
@Dmitrii 第一个 Scheme 实现是在 Lisp 1.5 后裔下的解释器,类似于 Common Lisp,但没有词法范围(interlisp)。因此,Scheme 是第一个具有词法范围的 lisp 语言。是
pair?刚刚借用了 interlispconsp。从一个有效的词法 lisp 中,您可以使用向量或闭包创建cons合约。从实现的内部来看,它可以通过多种其他更有效的方式来完成。引导一个新的 lisp 通常意味着使原语自己工作,因此通常会在宿主语言中实现对。