Greetings, The following is based on a question I raised on Stackoverflow: https://stackoverflow.com/questions/46280120/calling-printls-str-in-function-affect-behavior-of-rep/46283979#46283979 Start a new R session with an empty Global Env. Then define: f <- function(n) { print(ls.str()) rep("hello", times = n) } Now run: f(x) Instead of getting the expected "object 'x' not found" error, you get: n : <missing>[1] "hello" It was suggested that I file the issue here as a possible bug. Regards, Homer [[alternative HTML version deleted]]
Here is the same issue with closures: g <- function(n) { missing(n) } f <- function(n, force) { if (force) { tryCatch(n, error = function(...) NULL) } g(n) } g(`_x`) #> [1] FALSE f(`_x`, force = FALSE) #> [1] FALSE f(`_x`, force = TRUE) #> [1] TRUE Lionel> On 18 sept. 2017, at 19:06, Homer White <homerhanumat at gmail.com> wrote: > > Greetings, > > The following is based on a question I raised on Stackoverflow: > > https://stackoverflow.com/questions/46280120/calling-printls-str-in-function-affect-behavior-of-rep/46283979#46283979 > > Start a new R session with an empty Global Env. Then define: > > f <- function(n) { > print(ls.str()) > rep("hello", times = n) > } > > Now run: > > f(x) > > Instead of getting the expected "object 'x' not found" error, you get: > > n : <missing>[1] "hello" > > It was suggested that I file the issue here as a possible bug. > > > Regards, > > Homer > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
luke-tierney at uiowa.edu
2017-Sep-19 18:56 UTC
[Rd] issue with promises for time parameter of rep()
Thanks. Fixed in R-devel and R-patched. This now gives f <- function(n) { print(ls.str()) rep("hello", times = n) } f(n) ## n : <missing> ## Error in f(n) : object 'n' not found ## In addition: Warning message: ## In f(n) : restarting interrupted promise evaluation Best, luke On Mon, 18 Sep 2017, Homer White wrote:> Greetings, > > The following is based on a question I raised on Stackoverflow: > > https://stackoverflow.com/questions/46280120/calling-printls-str-in-function-affect-behavior-of-rep/46283979#46283979 > > Start a new R session with an empty Global Env. Then define: > > f <- function(n) { > print(ls.str()) > rep("hello", times = n) > } > > Now run: > > f(x) > > Instead of getting the expected "object 'x' not found" error, you get: > > n : <missing>[1] "hello" > > It was suggested that I file the issue here as a possible bug. > > > Regards, > > Homer > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >-- Luke Tierney Ralph E. Wareham Professor of Mathematical Sciences University of Iowa Phone: 319-335-3386 Department of Statistics and Fax: 319-335-3017 Actuarial Science 241 Schaeffer Hall email: luke-tierney at uiowa.edu Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu