R 的编程范式是什么?

发布于 2024-11-09 15:47:20 字数 127 浏览 3 评论 0原文

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

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

What is the programming paradigm of R (R as in GNU S)?

I believe myself familiar with programming languages of different conceptual paradigms (have programmend in C++, Java, Prolog and some other languages) but although I already write my own small R scripts, I am not sure which paradigm R is supposed to represent.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滥情稳全场 2024-11-16 15:47:20

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

在功能方面,它:

  • 拥有一流的函数
  • 对参数进行惰性求值
  • 鼓励纯函数、无副作用

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

在面向对象方面:

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

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

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

但是

  • 内置的面向对象工具几乎没有提供语法糖。

R supports a mixture of object-oriented and functional programming paradigms.

On the functional side it:

  • has first class functions
  • has lazy evaluation of arguments
  • encourages pure, side-effect free functions

But

  • it does not implement tail call recursion
  • and it's easy to create non-pure functions

On the object oriented side:

  • it has three built in OO paradigms: S3 and S4, which are immutable and support generic function style OO, and reference classes (aka R5) which are mutable, and support the more common message-passing style OO.

  • S4 is heavily influenced by the OO-style of common lisp (CLOS) and dylan.

  • There are also a number of contributed packages that provide other types of OO: proto, mutatr, R.oo, OOP.

But

  • The built-in OO tools provide little in the way of syntactic sugar.
峩卟喜欢 2024-11-16 15:47:20

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

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

According to Wikipedia (emphasis added),

R supports procedural programming with functions and object-oriented programming with generic functions. A generic function acts differently depending on the type of arguments it is passed. In other words the generic function recognizes the type of object and selects (dispatches) the function (method) specific to that type of object. For example, R has a generic print() function that can print almost every type of object in R with a simple "print(objectname)" syntax.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文