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