19

R 的编程范式是什么(如 GNU S 中的 R)?

我相信自己熟悉不同概念范式的编程语言(有 C++、Java、Prolog 和其他一些语言的编程语言),但是虽然我已经编写了自己的小型 R 脚本,但我不确定 R 应该代表哪种范式。

4

2 回答 2

21

R 支持面向对象和函数式编程范式的混合。

在功能方面:

  • 具有一流的功能
  • 对参数进行惰性求值
  • 鼓励纯粹的、无副作用的功能

  • 它没有实现尾调用递归
  • 并且很容易创建非纯函数

在面向对象方面:

  • 它具有三个内置的 OO 范例:S3 和 S4,它们是不可变的并支持通用函数样式 OO,以及引用类(又名 R5),它们是可变的,并支持更常见的消息传递样式 OO。

  • S4 深受 OO 风格的 common lisp (CLOS) 和 dylan 的影响。

  • 还有许多提供其他类型 OO 的贡献包:proto, mutatr, R.oo, OOP.

  • 内置的 OO 工具几乎没有提供语法糖。
于 2011-05-25T02:39:57.153 回答
5

根据维基百科(强调添加),

R 支持使用函数的过程式编程和使用泛型函数的面向对象的编程。泛型函数的行为取决于它传递的参数类型。换句话说,通用函数识别对象的类型并选择(调度)特定于该对象类型的函数(方法)。例如,R 有一个通用的 print() 函数,它可以使用简单的“print(objectname)”语法打印 R 中几乎所有类型的对象。

于 2011-05-23T14:48:22.043 回答