Re: [Rd] using with inside loop breaks next

2016-10-27 Thread Peter Dalgaard
(a)/(c) mostly, I think. The crux is that "next" is unhappy about being evaluated in a different environment than the containing loop. Witness this: > for (i in 1:10) {if (i == 5) evalq(next); print(i)} [1] 1 [1] 2 [1] 3 [1] 4 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10 > for (i in 1:10) {if (i == 5) evalq(n

[Rd] using with inside loop breaks next

2016-10-27 Thread Richard Cotton
If I want to use with inside a loop, it seems that next gets confused. To reproduce: for(lst in list(list(a = 1), list(a = 2), list(a = 3))) { with(lst, if(a == 2) next else print(a)) } I expect 1 and 3 to be printed, but I see [1] 1 Error in eval(expr, envir, enclos) : no loop for break/ne