Что предотвращает добавление к текущему набору зарезервированных слов/символов R?
Есть ли исторический прецедент внутренних изменений в парсере R
, добавив новый зарезервированные слова или символы?
Если я правильно помню, data.table
использует заданный параметр :=
, который когда-то был определен, но остался неиспользуемым внутри R
внутренним, но я не знаю других. Однако по мере развития языка иногда представляется полезным определить новые символы.
Очевидный случай может быть сделан для magrittr pipe %>%
, который стал повсеместным для многих, но остается больным типом (конечно, есть клавиатурные трюки, но все же). Аналогично, dplyr/rlang
вводят/переписывают обозначения для "аккуратной оценки" (!!
, !!!
, :=
, ~
и т.д.).
Другой случай, который я вижу, - это многословие лямбда-функций. Можно ли теоретически определить внутри себя нечто вроде f = λ(x) x+1
вместо f = function(x) x+1
, или существуют ли ограничения характера по другим причинам?
Ответы
Ответ 1
Зачем добавлять эргономическую функцию, если вы рискуете нарушить среду выполнения, на которой размещена огромная экосистема? Кроме того, как только вы добавляете одну функцию, вы находитесь на скользком склоне и смотрите прямо перед лицом раздувания функции.
И если вы скажете, что мы можем быть умными и разумными в отношении того, какие функции мы добавляем, как мы структурируем этот процесс принятия решений? У R нет "доброжелательного диктатора", имеющего последнее слово в таких решениях, так что вы остаетесь с дизайном комитета со всем, что оно влечет за собой.
Большая вещь с R всегда была экосистемой пакета, в которой, если вам нужна функция, которую вы пишете сами - как в вашем примере magrittr
. Сам язык остался близким к его корням S и успешно служил стабильной платформой для всего развития, которое происходило.