Core Characteristics of R Programming Language
Table of Content:
Core Characteristics
EXECUTION MODEL:
Interpreted. R is also an interpreted language, in the sense that it provides an interface to compile the code; that is, expressions in R are also JIT-compiled to bytecode, which can then be interpreted.
INTERACTIVE CONSOLE:
RStudio, R Commander, Jupyter Notebook. RStudio is the cornerstone user interface for the R language. However, the language is also compatible with the R Commander and Jupyter Notebook GUIs.
STANDARD LIBRARY:
Comprehensive
INHERITANCE:
Multiple inheritance
TYPING:
Strong, dynamic. R is also dynamically typed in the sense that it is not necessary to predefine variables before execution (as would be the case in a low-level language such as C++).
INTERFACE ENFORCEMENT:
At runtime, via duck typing (allows for the running of operations on objects without specifically having to predefine those objects beforehand).
FIRST CLASS FUNCTIONS:
Yes. A function can be assigned to a variable in the same way as Python.
CLOSURES:
Yes. The scope of a function encompasses variables that appear in its body but that are not local variables or arguments. This is necessary for correct support of first class functions in a language with lexical scoping.
ANONYMOUS FUNCTIONS:
Limited syntax. R uses the function keyword in place of a lambda to do so.
DATA ABSTRACTION:
Classes. Both Python and R support object-oriented programming, where classes in R are of an S3 or S4 type. Although you can add methods to a class in R using the setMethod() function, this process is more simplistic in Python.