R的C API中的SEXP数据类型到底是什么?为什么使用它?

Rog*_* Ko 5 c lisp r

我知道SEXP上的维基百科页面,并且我知道它代表符号表达。我知道(模糊地)SEXP是指Lisp中的树数据结构的表示法,但是我想知道是什么促使开发人员在C SEXP中调用R对象的数据类型。为什么选择SEXP?

我也很困惑,因为如果R是用C和Fortran制作的,为什么还要使用Lisp的符号?还是SEXP是更笼统的术语?也许我在这里错过了一些东西。

Chr*_*ung 9

R 在内部有点像具有 S 兼容语法的 Scheme。许多 R 的内部结构源自 Scheme 概念,例如 cons 单元和词法环境。

早在 90 年代末,我就为 R 开发了一种新的(当时)序列化格式;请参阅我的荣誉项目论文,其中解释了很多。(那张纸上的电子邮件地址不再有效,所以不要使用它。)