EmpezarEmpieza gratis

Funciones genéricas primitivas

Parte de la funcionalidad básica de R se define usando funciones primitivas, que emplean una técnica especial para acceder a código en C por motivos de rendimiento. Ejemplos de funciones primitivas incluyen elementos del lenguaje, como if y for, operadores como + y $, y funciones matemáticas como exp y sin. Entre las funciones primitivas hay genéricas S3; puedes obtener la lista completa de genéricas primitivas S3 con .S3PrimitiveGenerics (docs).

Cuando una genérica S3 es primitiva, su proceso de búsqueda de métodos funciona de forma ligeramente distinta. R buscará métodos usando class (docs), como siempre, pero si no encuentra ninguno, llamará a la función interna en C. (Compáralo con las genéricas normales, donde se lanza un error si no se encuentra ningún método). Esto significa que, si sustituyes la clase de un objeto, no se rompe un comportamiento fundamental como calcular la longitud.

Este ejercicio forma parte del curso

Programación orientada a objetos con S3 y R6 en R

Ver curso

Instrucciones del ejercicio

En tu espacio de trabajo tienes asignado un objeto lista con la clase sustituida por "hairstylist" en la variable hair.

  • Consulta la estructura de hair con str() (docs).
  • Lista todas las genéricas primitivas S3 que R conoce.
  • Usa la función exists() (docs) para comprobar que no existe ninguna función llamada length.hairstylist. Ten en cuenta que esta función recibe una cadena de caracteres como entrada.
  • Calcula el length() (docs) de la variable hair.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# View the structure of hair
___

# What primitive generics are available?
___

# Does length.hairstylist exist?
___

# What is the length of hair?
___
Editar y ejecutar código