[R] [FORGED] modify the supposed return value of a function during evaluation?

Rolf Turner r@turner @end|ng |rom @uck|@nd@@c@nz
Fri Sep 14 10:56:40 CEST 2018


On 09/14/2018 08:33 PM, Jeremie Juste wrote:
> 
> Hello,
> 
> I'm wondering it is possible and if yes would it be desirable to modify
> the return value of functions during evaluation.
> 
> I supposed this would be very useful during debugging
> 
> myfun <- function(x) {res <- x+3 ; browser()  ; res}
> 
> let say I run the following function myfun(3)  and drop in the browser. I then happened to notice that I should
> multiply <x> by 3 instead of adding. I was thinking to do return(x*3)
> but the return value is still 6.
> 
>> myfun(3)
> Called from: myfun(3)
> Browse[1]>
> debug at #1: res
> Browse[2]> return(3*3)
> [1] 6

Don't use return().  Change the value of "res" and then "continue".
Browse[1]> res <- x*3
Browse[1]> c

You will get the value 9 returned by "myfun(3)".  (God how I hate this 
stupid egocentric sounding "mythis" and "mythat" syntax that Micro$oft 
has inflicted upon the world. But never mind.)

I am however very sure that your proposed approach is Not A Good Idea.

If you want an interactive structure for your function, make it 
interactive. In a well thought out and well organised manner.

cheers,

Rolf Turner

-- 
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276




More information about the R-help mailing list