Frage

Was ist das Programmierparadigma von R (R wie in GNU S)?

Ich glaube, ich bin mit Programmiersprachen verschiedener konzeptioneller Paradigmen vertraut (habe in C ++, Java, Prolog und einigen anderen Sprachen programmiert), aber obwohl ich bereits meine eigenen kleinen R-Skripte schreibe, bin ich mir nicht sicher, welches Paradigma R darstellen soll.

War es hilfreich?

Lösung

R unterstützt eine Mischung aus objektorientierten und funktionalen Programmierparadigmen.

Auf der funktionalen Seite ist es:

  • hat erstklassige Funktionen
  • hat faule Bewertung von Argumenten
  • fördert reine, nebenwirkungsfreie Funktionen

Aber

  • es implementiert keine Tail-Call-Rekursion
  • und es ist einfach, nicht reine Funktionen zu erstellen

Auf der objektorientierten Seite:

  • es hat drei eingebaute OO-Paradigmen:S3 und S4, die unveränderlich sind und den generischen Funktionsstil OO unterstützen, und Referenzklassen (auch bekannt als R5), die veränderbar sind und den häufigeren Nachrichtenübergabestil OO unterstützen.

  • S4 ist stark vom OO-Stil von Common Lisp (CLOS) und Dylan beeinflusst.

  • Es gibt auch eine Reihe von beigesteuerten Paketen, die andere Arten von OO bereitstellen: proto, mutatr, R.oo, OOP.

Aber

  • Die eingebauten OO-Tools bieten wenig syntaktischen Zucker.

Andere Tipps

nach Wikipedia (Hervorhebung hinzugefügt),

r unterstützt Verfahrensprogrammierung mit Funktionen und objektorientierten Programmierungen mit generischen Funktionen.Eine generische Funktion wirkt unterschiedlich, abhängig von der Art der übergebenen Argumente.Mit anderen Worten, die generische Funktion erkennt die Art des Objekts und wählt (Dispatches) die Funktion (Methode), die spezifisch für diese Art von Objekt ist.Zum Beispiel hat R über eine generische Druckfunktion (), die fast jeden Objekttyp in R mit einem einfachen "Druck (objectName)" -Syntax drucken kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top