On Dec 26, 2013, at 10:26 PM, Peter Meilstrup <[email protected]> wrote:
> Is this expected behavior, and if so, why? I would have expected
> neither 'arg' nor 'value' to evaluate until forced.
>
> `test<-` <- function(obj, arg, value) {
> 1 #force no args
> }
> x <- 1
> test(x, print("evaled arg")) <- print("evaluated value")
>
> ## [1] "evaluated value”
>
“Use the source, Luke”:
/* It's important that the rhs get evaluated first because
assignment is right associative i.e. a <- b <- c is parsed as
a <- (b <- c). */
Compare to
> `test<-`(x, print("evaled arg"), print("evaluated value"))
[1] 1
Cheers,
Simon
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel