CommencezCommencez gratuitement

Fonctions génériques primitives

Une partie des fonctionnalités de base de R est définie au moyen de fonctions primitives, qui utilisent une technique spéciale pour accéder au code C, pour des raisons de performance. Parmi les fonctions primitives, on retrouve des éléments du langage comme if et for, des opérateurs comme + et $, ainsi que des fonctions mathématiques comme exp et sin. Les fonctions primitives incluent aussi des génériques S3; la liste complète des génériques S3 primitifs peut être obtenue avec .S3PrimitiveGenerics (docs).

Lorsque le générique S3 est primitif, son processus de recherche des méthodes fonctionne un peu différemment. R va chercher des méthodes selon la class (docs), comme à l'habitude, mais si rien n'est trouvé, la fonction interne en code C sera appelée. (À comparer aux génériques réguliers, où une erreur est émise si aucune méthode n'est trouvée.) Cela signifie que si vous remplacez la classe d'un objet, des comportements fondamentaux comme le calcul de la longueur ne seront pas brisés.

Cette activité fait partie du cours

Programmation orientée objet avec S3 et R6 en R

Voir le cours

Instructions de l’exercice

Un objet de type liste, dont la classe a été remplacée par "hairstylist", a été assigné dans votre espace de travail à la variable hair.

  • Affichez la structure de hair avec str() (docs).
  • Dressez la liste de tous les génériques S3 primitifs connus par R.
  • Utilisez la fonction exists() (docs) pour vérifier qu'aucune fonction nommée length.hairstylist n'existe. Notez que cette fonction prend une entrée de type chaîne de caractères.
  • Calculez le length() (docs) de la variable hair.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# View the structure of hair
___

# What primitive generics are available?
___

# Does length.hairstylist exist?
___

# What is the length of hair?
___
Modifier et exécuter le code