Обычно я бы перечислял их все отдельно, чтобы они были явными:
primary_function = function () {
a = function () 2
b = function () 3
list(a = a, b = b)
}
Но вы можете сократить, если их много:
primary_function = function () {
a = function () 2
b = function () 3
as.list(environment())
}
(Вы также можете вернуть саму среду вместо копирования в список.)
Обратите внимание, что это вернет все локальные символы. Если у вас есть нефункциональные символы и вы хотите вернуть только функции, вместо этого выполните
primary_function = function () {
a = function () 2
b = function () 3
mget(lsf.str())
}
Также обратите внимание, что ваш код содержит ошибки, поскольку в R return
это не оператор, а вызов функции , который прерывает текущее выполнение функции. Таким образом, вам нужно написать это в скобках (например, return(2)
, а не return 2
), и их использование здесь избыточно: R всегда возвращает последнее значение выполнения функции. Вот почему я их опустил. Я использую только return
, чтобы сигнализировать о досрочном выходе.