Scheme racket/base名称空间

Scheme racket/base名称空间,scheme,racket,r7rs,Scheme,Racket,R7rs,任何人都知道racket/base语言中包含的内容。我希望将racket/base名称空间定义与R7RS草案进行比较,以获得racket与Scheme之间的差异的第一手信息。根据: 除非另有说明,本手册中定义的绑定是通过racket/base和racket语言导出的 不幸的是,这不是非常有用,因为它是一个大的参考手册。但是,由于您正在将R7R与Racket进行比较,因此浏览整个参考资料以了解可用内容可能会很有用。与任何其他实际方案实现一样,差异将是巨大的。为了让您大致了解一下,我从racket/

任何人都知道
racket/base
语言中包含的内容。我希望将
racket/base
名称空间定义与R7RS草案进行比较,以获得racket与Scheme之间的差异的第一手信息。

根据:

除非另有说明,本手册中定义的绑定是通过racket/base和racket语言导出的


不幸的是,这不是非常有用,因为它是一个大的参考手册。但是,由于您正在将R7R与Racket进行比较,因此浏览整个参考资料以了解可用内容可能会很有用。

与任何其他实际方案实现一样,差异将是巨大的。为了让您大致了解一下,我从
racket/base
中看到了1300多个标识符,
racket
增加到2000多个。另外,请注意,比较名称并不是全部内容——还有其他区别,比如Racket默认使用不可变对,以及保证从左到右的求值顺序

对于前者,您自己获取列表的一种快速方法是确保已安装(使您的
~/.racketrc
文件包含
(require xrepl)
),然后使用
Racket/base
作为REPL语言启动Racket,并使用(apropos)命令,不带任何参数,以便显示所有绑定名称:

$ racket -I racket/base
Welcome to Racket v5.2.1.
-> ,ap

要了解这些名称,您可以使用命令,也可以只使用文档中的。

直截了当地回答问题,顺便说一句,r7rs草案看起来像是一种实用语言。“实用”是一个相对术语。。。它比R5R更实用,但是它没有线程、子进程、网络、非阻塞IO和无数其他东西,所以差别很大。即使是大型语言也不会拥有所有这些。