Подтвердить что ты не робот

Что предотвращает добавление к текущему набору зарезервированных слов/символов R?

Есть ли исторический прецедент внутренних изменений в парсере R, добавив новый зарезервированные слова или символы?

Если я правильно помню, data.table использует заданный параметр :=, который когда-то был определен, но остался неиспользуемым внутри R внутренним, но я не знаю других. Однако по мере развития языка иногда представляется полезным определить новые символы.

Очевидный случай может быть сделан для magrittr pipe %>%, который стал повсеместным для многих, но остается больным типом (конечно, есть клавиатурные трюки, но все же). Аналогично, dplyr/rlang вводят/переписывают обозначения для "аккуратной оценки" (!!, !!!, :=, ~ и т.д.).

Другой случай, который я вижу, - это многословие лямбда-функций. Можно ли теоретически определить внутри себя нечто вроде f = λ(x) x+1 вместо f = function(x) x+1, или существуют ли ограничения характера по другим причинам?

4b9b3361

Ответ 1

Зачем добавлять эргономическую функцию, если вы рискуете нарушить среду выполнения, на которой размещена огромная экосистема? Кроме того, как только вы добавляете одну функцию, вы находитесь на скользком склоне и смотрите прямо перед лицом раздувания функции.

И если вы скажете, что мы можем быть умными и разумными в отношении того, какие функции мы добавляем, как мы структурируем этот процесс принятия решений? У R нет "доброжелательного диктатора", имеющего последнее слово в таких решениях, так что вы остаетесь с дизайном комитета со всем, что оно влечет за собой.

Большая вещь с R всегда была экосистемой пакета, в которой, если вам нужна функция, которую вы пишете сами - как в вашем примере magrittr. Сам язык остался близким к его корням S и успешно служил стабильной платформой для всего развития, которое происходило.