R 的编程范式是什么(如 GNU S 中的 R)?
我相信自己熟悉不同概念范式的编程语言(有 C++、Java、Prolog 和其他一些语言的编程语言),但是虽然我已经编写了自己的小型 R 脚本,但我不确定 R 应该代表哪种范式。
R 支持面向对象和函数式编程范式的混合。
在功能方面:
但
在面向对象方面:
它具有三个内置的 OO 范例:S3 和 S4,它们是不可变的并支持通用函数样式 OO,以及引用类(又名 R5),它们是可变的,并支持更常见的消息传递样式 OO。
S4 深受 OO 风格的 common lisp (CLOS) 和 dylan 的影响。
还有许多提供其他类型 OO 的贡献包:proto
, mutatr
, R.oo
, OOP
.
但
根据维基百科(强调添加),
R 支持使用函数的过程式编程和使用泛型函数的面向对象的编程。泛型函数的行为取决于它传递的参数类型。换句话说,通用函数识别对象的类型并选择(调度)特定于该对象类型的函数(方法)。例如,R 有一个通用的 print() 函数,它可以使用简单的“print(objectname)”语法打印 R 中几乎所有类型的对象。