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.

¿Fue útil?

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)".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top