1. Nauka
  2. /
  3. Kursy
  4. /
  5. Programowanie obiektowe z S3 i R6 w R

Connected

ćwiczenie

Prymitywne funkcje generyczne

Część podstawowych funkcji R jest zdefiniowana jako funkcje prymitywne, które wykorzystują specjalny mechanizm dostępu do kodu w C, co pozwala osiągnąć lepszą wydajność. Przykłady funkcji prymitywnych to elementy języka, takie jak if i for, operatory jak + i $, oraz funkcje matematyczne jak exp i sin. Wśród funkcji prymitywnych znajdziemy też funkcje generyczne S3 – pełną listę prymitywnych funkcji generycznych S3 można uzyskać za pomocą .S3PrimitiveGenerics (docs).

Kiedy funkcja generyczna S3 jest prymitywna, mechanizm wyszukiwania metod działa nieco inaczej. R szuka metod na podstawie class (docs) – tak jak zwykle – ale jeśli żadna nie zostanie znaleziona, wywołuje wewnętrzną funkcję w kodzie C. Różni się to od zwykłych funkcji generycznych, gdzie brak dopasowanej metody skutkuje błędem. Dzięki temu nadpisanie klasy obiektu nie psuje podstawowych operacji, takich jak obliczanie długości.

Instrukcje

100 XP

W twoim środowisku roboczym dostępna jest zmienna hair – obiekt listy z nadpisaną klasą "hairstylist".

  • Wyświetl strukturę zmiennej hair za pomocą str() (docs).
  • Wylistuj wszystkie prymitywne funkcje generyczne S3, które zna R.
  • Użyj funkcji exists() (docs), aby sprawdzić, że funkcja o nazwie length.hairstylist nie istnieje. Pamiętaj, że ta funkcja przyjmuje argument w postaci ciągu znaków.
  • Oblicz length() (docs) zmiennej hair.