我知道SEXP上的维基百科页面,我知道它代表符号表达。我知道(含糊地)SEXP是指在Lisp中引用树数据结构的符号,但我想知道是什么促使开发人员在C SEXP中调用R对象的数据类型。为何选择SEXP?
我也很困惑,因为如果R是用C和Fortran制作的,为什么要使用Lisp的符号呢?或者SEXP是一个更通用的术语?也许我在这里错过了一些东西。
答案 0 :(得分:3)
R在内部类似于具有S兼容语法的Scheme。很多R的内部都来自Scheme概念,比如cons单元和词汇环境。
早在90年代末期,我为R开发了一种新的(当时)序列化格式;请参阅my honours project paper,其中解释了很多内容。 (该文件上的电子邮件地址不再有效,所以不要使用它。)
答案 1 :(得分:3)
在C和Fortran中实现实现的事实并没有真正影响语言的功能。许多编程语言,包括许多Lisp解释器,都是用C语言编写的。
R具有S-Expressions,因为它被写入了它应具有的语言规范,以及它们的确切工作方式的描述。
R可能将此功能称为“S-Expressions”的原因是因为它是它们是什么。他们不只是使用一些Lisp术语,他们正在使用直接从Lisp世界中提取的一个功能,并正确命名。