Episodio

Módulos en R

con Sebastian Warnholz

useR!2017: Módulos en R

Palabras clave: programación, programación funcional
Páginas web: https://CRAN.R-project.org/package=modules, https://github.com/wahani/modules
En esta charla presento el concepto de módulos dentro del lenguaje R . La idea clave del paquete de módulos es proporcionar una unidad de código fuente independiente, es decir, tiene su propio ámbito. La infraestructura principal y más confiable para estas unidades organizativas de código fuente es un paquete. En comparación con los módulos de paquete se puede considerar ad hoc, pero todavía independiente. Esto significa que vienen con un mecanismo para importar dependencias y también para exportar funciones miembro. Sin embargo, los módulos no actúan como reemplazos para los paquetes. En su lugar, son una unidad de abstracción entre funciones y paquetes.
Hay dos casos de uso en los que los módulos pueden ser beneficiosos. En primer lugar, cuando se escriben scripts y se quieren usar funciones de origen o, en general, se necesita más control del entorno envolvente de una función. Aquí podemos estar interesados en poder indicar las dependencias de una función cerca de su definición; y también sin los efectos secundarios típicos para el entorno global de la sesión de R actual. En segundo lugar, como unidad organizativa dentro de los paquetes. Aquí los módulos pueden actuar como entidades similares como objetos en la programación orientada a objetos. Sin embargo, otros lenguajes con conceptos similares son principalmente funcionales y el diseño toma prestado de lenguajes como julia, Erlang y F#. Como resultado, los módulos no están diseñados para contener datos. Además, no hay ningún mecanismo formal para la herencia. En su lugar, se implementan varias posibilidades para la composición del módulo.