Определите, является ли аргумент функции вызовом функции - PullRequest
0 голосов
/ 23 октября 2018

Я хочу иметь возможность определить, является ли аргумент функции вызовом функции или нет.Допустим, у меня есть две функции, f() и g():

f <- function() "foo" 

g <- function(x){
  ???
} 

Я хочу вывод на вызовы, как показано ниже:

g(f())
#> [1] TRUE
g("bar")
#> [1] FALSE

Я могу заставить это работатьцитирование аргументов функции:

f <- function() "foo" 

g <- function(x) is.call(x)

g(quote(f()))
#> [1] TRUE
g(quote("bar"))
#> [1] FALSE

Однако это неоптимально, так как я не хочу, чтобы пользователи функции делали это.Есть предложения?

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете использовать substitute():

h <- function(x) is.call(substitute(x))
h(f())
# [1] TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...