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