4 ms·
As the article "Tidy Evaluation"[1] says "R makes it easy to create DSLs thanks to three features of the language: * R code is first-class. That is, R code ca
by yomritoyj 9y ago
As the article "Tidy Evaluation"[1] says
"R makes it easy to create DSLs thanks to three features of the language:
* R code is first-class. That is, R code can be manipulated like any other object (see sym(), lang() and node() for creating such objects). We also call expressions these objects containing R code (see is_expr()).
* Scope is first-class. Scope is the lexical environment that associates values to symbols in expressions. Environments can be created (see env()) and manipulated as regular objects.
* Finally, functions can capture the expressions that were supplied as arguments instead of being passed the value of these expressions (see enquo() and enexpr()).
"
dplyr is a testament to how these nonstandard features of R can be combined to produce a language for interactive data analysis whose convenience and clarity cannot be matched by traditional languages.
[1] http://rlang.tidyverse.org/articles/tidy-evaluation.html http://rlang.tidyverse.org/articles/tidy-evaluation.html
- peatmoss 9y agoAbsolutely! R's lispy legacy shines through in places.