Что такое парадигма программирования R?
Вопрос
Что такое парадигма программирования r (r как в gnu s)?
Я верю, что я знаком с языками программирования разных концептуальных парадигм (есть программирование в C ++, Java, Prology и другие языки), но хотя я уже пишу свои собственные сценарии R, я не уверен, какая парадигма должна представлять,
Решение
r поддерживает смесь объектно-ориентированных и функциональных парадигм программирования.
на функциональной стороне это:
- .
- имеет функции первого класса
- имеет ленивую оценку аргументов
- поощряет чистый, без бокового эффекта бесплатные функции
Но
- .
- это не реализует рекурсию вызова хвоста
- и легко создавать не чистые функции
на ориентированной на объект:
- .
-
Он имеет три встроенные парадигмы OO: S3 и S4, которые являются неизменными и поддерживать универсальный стиль функции OO, а также ссылочные классы (aka R5), которые являются смежными, и поддерживают более распространенный стиль прохождения сообщения OO.
-
s4 сильно зависит от oo-стиль общего lisp (Black) и диалана.
-
Есть также ряд предоставленных пакетов, которые обеспечивают другие типы OO:
proto
,mutatr
, GeneracodicCode,R.oo
.
Но
- .
- встроенные инструменты OO обеспечивают мало на пути синтаксического сахара.
Другие советы
Согласно Wikipedia (ACTIS добавлено),
r поддерживает
Процессуальное программирование с функциями и <сильным> объектно-ориентированным на объектно-ориентированном программировании с универсальными функциями.Общая функция действует по-разному в зависимости от типа аргументов, которые оно передается.Другими словами, общая функция распознает тип объекта и выбирает (рассылки) функции (метод), специфичный для этого типа объекта.Например, R имеет универсальную функцию Print (), которая может печатать практически каждый тип объекта в R с простой синтаксисом «Print (ObjectName)».