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

标签 c r lisp

<分区>

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

我也很困惑,因为如果 R 是用 C 和 Fortran 编写的,为什么要使用 Lisp 的符号?还是 SEXP 是一个更笼统的术语?也许我在这里遗漏了什么。

最佳答案

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

早在 90 年代后期,我就为 R 研究了一种新的(当时)序列化格式;见my honours project paper ,这解释了很多。 (那张纸上的电子邮件地址不再有效,所以不要使用它。)

关于c - R 的 C API 中的 SEXP 数据类型到底是什么,为什么要使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38177777/

相关文章:

c++ - Eclipse CDT 从 Makefile 项目中获取路径?

c - C语言多客户端服务器通信程序如何同时使用writefds和readfds?

c - 在 C 的链接列表中按字母顺序排序?

r - 从帮助页面和 pkgdown 中的单独包链接到 R6 方法

r - 如何更有效地计算滚动协方差

c - 为什么 Perl 5.14 使用 (0+GvGP(gv)->gp_cv) 定义 GvGC?

按组随机抽样并根据结果进行过滤

arrays - 具有良好多维数组编程支持的 Lispy 方言

lisp - McCLIM Click Listener 是否存在?

lisp - 为什么 caddr[(A B C)] = C?