Что такое парадигма программирования R?

Что такое парадигма программирования R (R, как в GNU S)?

Я считаю, что знаком с языками программирования различных концептуальных парадигм (есть programmend в C++, Java, Prolog и некоторых других языках), но, хотя я уже пишу свои собственные небольшие R-скрипты, я не уверен, какую парадигму R должен представлять.

2 ответов


R поддерживает сочетание объектно-ориентированных и функциональных парадигм программирования.

на функциональной стороне это:

  • имеет функции первого класса
  • имеет ленивую оценку аргументов
  • ободряет чисто, функции побочного эффекта свободные

но

  • он не реализует рекурсию хвостового вызова
  • и легко создать не-чистые функции

на объект сторона:

  • Он имеет три встроенные парадигмы OO: S3 и S4, которые неизменяемы и поддерживают общий стиль функции OO, и ссылочные классы (он же R5), которые изменяемы, и поддерживают более общий стиль передачи сообщений OO.

  • S4 сильно зависит от OO-стиля common lisp (CLOS) и dylan.

  • есть также ряд внесенных пакетов, которые предоставляют другие типы OO:proto, mutatr, R.oo, OOP.

но

  • встроенные инструменты OO обеспечивают мало на пути синтаксического сахара.

по данным Википедия (курсив),

R поддерживает процедурное программирование С