R的编程范式是什么?

时间:2011-05-23 14:45:20

标签: r paradigms

R(R在GNU S中)的编程范例是什么?

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

2 个答案:

答案 0 :(得分:17)

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

在功能方面:

  • 拥有一流的功能
  • 对参数进行了懒惰的评估
  • 鼓励纯粹的副作用免费功能

但是

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

在面向对象方面:

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

  • S4受到普通lisp(CLOS)和dylan的OO风格的影响很大。

  • 还有一些提供其他类型的OO的贡献包:protomutatrR.ooOOP

    < / LI>

但是

  • 内置的OO工具几乎没有提供语法糖。

答案 1 :(得分:3)

根据Wikipedia(强调补充),

  

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

相关问题