[Rd] Surpising behavior when using an active binding as loop index in R 4.0.0

Thomas Friedrichsmeier thom@@@|r|edr|ch@me|er @end|ng |rom ruhr-un|-bochum@de
Sat May 23 13:19:24 CEST 2020


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: Digitale Signatur von OpenPGP
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20200523/8f3f891d/attachment.sig>


More information about the R-devel mailing list