Что такое парадигма программирования 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 поддерживает процедурное программирование С