On 12-02-06 3:11 PM, Francois Rousseu wrote:

Hello useRs
I am looking for a function that can give the list of lines that were evaluated 
or used to generatethe last output from any function, whether an error message 
was generated or not. For example, let's say I have a function like this:
foo<- function( x ){                           if( x>10 ){                            
                    ans<- x+100                                   }else{                 
 ans<- x-100                  }             ans             }
and I type:
foo(4)[1] -96
I would like a function that returns something like this
list.lines(foo)[1] 1 3 4 5 6
or:
foo("hello")Error in x + 100 : non-numeric argument to binary operator
list.lines(foo)[1] 1 2
Is there already a function in R doing something similar or anybody has any 
hints for functions that I could use to create such a function?
Sincerely,Francois Rousseu

There isn't a function like that. I think it would be hard to write one without internal changes to R, but those changes might not have to be too large if the function had srcref information included, because the evaluator does have access to that.

(One way to do it without changing R is to pre-process the function to add in lots of extra code that records where it is as it is being evaluated. This is a little tricky to get right, but it might be quicker than waiting for the internal changes.)

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to