При вызове функции создается новая среда (называемая средой оценки), чье пространство (см. раздел 2.1.10 [Окружающая среда]) является средой от обертки функции. Новая среда первоначально заполнена неоцененными аргументами функции; поскольку оценка продолжается, локальные переменные создаются в ее пределах.
Есть также средство для преобразования функции «в» и «из» списочной структуры, используя as.list и as. function. Они были включены для совместимости с S и их использование обескураживает.
2.1.7. NULL
Существует специальный объект, называемый NULL. Он используется всякий раз, когда есть потребность идентифицировать или указать отсутствие объекта. Его не следует путать с вектором или списком нулевой длины.
Объект NULL не имеет типа и каких-либо поддающихся изменению свойств. В R есть только один объект NULL, к которому обращаются все экземпляры. Для проверки на NULL используют is.null. Нельзя установить атрибуты для NULL.
2.1.8. Встроенные объекты и специальные формы
Эти два вида объекта содержат встроенные функции R, то есть, те, которые выведены на экран как. Primitive в листингах кода (так же как те, к которым получают доступ через функцию. Internal и, следовательно, не видимые пользователем как объекты). Различия между ними заключается в обработке аргумента. Все собственные аргументы встроенных функций оцениваются и передаются внутренней функции в соответствии с вызовом по значению, тогда как специальные функции передают не оцененные аргументы внутренней функции.
Для языка R эти объекты – только другой вид функции. Функция is.primitive может отличить их от интерпретируемых функций.
2.1.9. Обещанные объекты
Объекты обещания – часть механизма отложенных вычислений R. Они содержат три слота: значение, выражение и окружающая среда. При вызове функции сравниваются аргументы, а затем каждый из формальных аргументов является обязательством к обещанию. Выражение, которое было дано для формального аргумента, и указатель на окружающую среду функции вызываются из сохраненных в обещании.
Пока к этому аргументу не получают доступ, не существует какого-либо значения, присоединенного с обещанием. Когда к аргументу получают доступ, сохраненное выражение оценивается в сохраненной окружающей среде и возвращается результат. Результат также сохранен обещанием. Функция замены извлечет контент слота выражения, что позволяет программисту получать доступ или к значению или к выражению, присоединенному с обещанием.