Inizia subitoInizia gratis

Funzioni generiche primitive

Alcune funzionalità di base di R sono definite usando funzioni primitive, che per motivi di performance usano una tecnica speciale per accedere al codice C. Esempi di funzioni primitive includono elementi del linguaggio, come if e for, operatori come + e $, e funzioni matematiche come exp e sin. Le funzioni primitive includono generiche S3; l’elenco completo delle generiche primitive S3 si può ottenere con .S3PrimitiveGenerics (docs).

Quando una generica S3 è primitiva, il suo processo di ricerca dei metodi funziona in modo leggermente diverso. R cercherà i metodi usando la class (docs), come di consueto, ma se non trova nulla chiamerà la funzione interna in C. (Confronta questo con le generiche normali, dove viene generato un errore se non si trova alcun metodo.) Questo significa che se sovrascrivi la classe di un oggetto, un comportamento fondamentale come il calcolo della lunghezza non si romperà.

Questo esercizio fa parte del corso

Programmazione orientata agli oggetti con S3 e R6 in R

Visualizza corso

Istruzioni dell'esercizio

Nel tuo workspace è stata assegnata alla variabile hair una lista la cui classe è stata sovrascritta a "hairstylist".

  • Visualizza la struttura di hair con str() (docs).
  • Elenca tutte le generiche primitive S3 conosciute da R.
  • Usa la funzione exists() (docs) per verificare che non esista alcuna funzione chiamata length.hairstylist. Nota che questa funzione accetta un input di tipo carattere.
  • Calcola la length() (docs) della variabile hair.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# View the structure of hair
___

# What primitive generics are available?
___

# Does length.hairstylist exist?
___

# What is the length of hair?
___
Modifica ed esegui il codice