R 属于一类编程语言。在该类编程语言中,子程序有能力修改或构建其它子程序, 求值并且把结果值作为语言自身的一部分。 这和 Lisp, Scheme 以及其它“函数编程”(functional programming)语言的变种有点 类似,但和FORTRAN 以及 ALGOL 类的编程语言形成鲜明对比。Lisp 类的语言 通过“所有东西都是列表”(everything is a list)这个理念让这个特性发挥到了极致, 以致于不能区分程序和数据。
R 提供了比 Lisp 更友好的编程接口。 对于用户来说,它至少使用了数学公式和 C 类似的控制结构,但是其引擎 事实上和 Lisp 非常类似的。R 允许直接访问 解析后的表达式和函数,并且允许你更改和随后执行它们,或者 从草稿中创建全新的函数。
有很多标准的应用采用了这种便利,如表达式的分析计算或通过系数向量
产生多项式函数。但是,也有一些非常基础的应用用于R里面解释部分的运行。
其中的一些应用是作为一个函数在另外一个函数里面作为一部分重用的本质部分,
因为调用的model.frame创建于多个模建和绘图程序(诚然,这样做有点不太漂亮)。
其它一些应用简单地允许某些有用函数的优秀接口。
如 curve 函数,它允许你绘制一个给定函数的表达式(如sin(x))的图形或者
便于绘制数学表达式的图形。
在本章,我们会介绍可以得到的用于语言上的计算的工具集合。