¿Cuál es el paradigma de programación de R?
Pregunta
¿Cuál es el paradigma de programación de R (R como en GNU S)?
Me creo familiarizado con los idiomas de programación de diferentes paradigmas conceptuales (tienen programación en C ++, Java, prólogo y algunos otros idiomas), pero aunque ya escribo mis propios scripts pequeños R, no estoy seguro de qué paradigma R se supone que representa.
Solución
r admite una mezcla de paradigmas de programación funcionales orientados a objetos.
en el lado funcional:
- tiene funciones de primera clase
- tiene una evaluación perezosa de los argumentos
- fomenta funciones libres de efectos secundarios
pero
- no implementa la recursión de llamada de cola
- y es fácil crear funciones no puras
en el lado orientado al objeto:
-
Tiene tres paradigmas de OO incorporados: S3 y S4, que son inmutables y admiten la función genérica de la función OO, y las clases de referencia (también conocido como R5) que son mutables, y admiten el estilo de paso más común.
-
s4 está fuertemente influenciado por el estilo de OO de Lisp común (Clos) y Dylan.
-
También hay varios paquetes contribuidos que proporcionan otros tipos de OO:
proto
,mutatr
,R.oo
,OOP
.
pero
- Las herramientas OO incorporadas proporcionan poco en el camino del azúcar sintáctico.
Otros consejos
Según wikipedia (énfasis agregado),
r Admite Programación de procedimientos con funciones y Programación orientada a objetos con funciones genéricas.Una función genérica actúa de manera diferente dependiendo del tipo de argumentos que se pase.En otras palabras, la función genérica reconoce el tipo de objeto y selecciona (Despacha) la función (método) específica para ese tipo de objeto.Por ejemplo, R tiene una función genérica de impresión () que puede imprimir casi todos los tipos de objeto en R con una sintaxis simple "Imprimir (ObjectName)".