Re: [Rd] Surpising behavior when using an active binding as loop index in R 4.0.0
Possibly just a symptom of the earlier behavior, but I'll amend my example, below, with an even more disturbing observation: Am Sat, 23 May 2020 13:19:24 +0200 schrieb Thomas Friedrichsmeier via R-devel : [...] > Consider the code below: > > makeActiveBinding("i", > function(value) { > if (missing(value)) { > x > } else { > print("set") > x <<- value > } > }, globalenv()) > > i <- 1 # output "set" > print(i) # output [1] 1 > > # Surprising behavior starts here: > for(i in 2:3) print(i) # output [1] "set" >#NULL >#NULL > > print(i) # output NULL > print(x) # output NULL > > i <- 4 # output "set" > print(i) # ouput [1] 4 > print(x) # ouput [1] 4 ls() # Error in ls() : # Value of SET_STRING_ELT() must be a 'CHARSXP' not a 'NULL' Regards Thomas pgpq_90MQ_lQD.pgp Description: Digitale Signatur von OpenPGP __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] Surpising behavior when using an active binding as loop index in R 4.0.0
Hi, I stumbled upon a surprising behavior when using an active binding as a loop index variable in R 4.0.0. In contrast, the behavior observed in R 3.6.1 is in line with my expectations. Consider the code below: makeActiveBinding("i", function(value) { if (missing(value)) { x } else { print("set") x <<- value } }, globalenv()) i <- 1 # output "set" print(i) # output [1] 1 # Surprising behavior starts here: for(i in 2:3) print(i) # output [1] "set" #NULL #NULL print(i) # output NULL print(x) # output NULL i <- 4 # output "set" print(i) # ouput [1] 4 print(x) # ouput [1] 4 Regards Thomas pgpyKwfk1KgEj.pgp Description: Digitale Signatur von OpenPGP __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel