From djsamperi at gmail.com  Mon Apr 18 17:41:30 2011
From: djsamperi at gmail.com (Dominick Samperi)
Date: Mon, 18 Apr 2011 11:41:30 -0400
Subject: [Rd] Tail Call Elimination?
In-Reply-To: <alpine.DEB.2.00.1104180941470.1955@luke-inspiron>
References: <BANLkTim3Y+zfNBBjGTXE4PijRqv41Cs-nw@mail.gmail.com>
	<alpine.DEB.2.00.1104180941470.1955@luke-inspiron>
Message-ID: <BANLkTinPucAOmqLBtZtLQ+YzQ7VsYmUT9A@mail.gmail.com>

On Mon, Apr 18, 2011 at 10:41 AM,  <luke-tierney at uiowa.edu> wrote:
> The premise of your post is false: contrary to popular belief, R's
> looping constructs are not particularly inefficient. Slowness of loops
> relative to vectorized code comes from the cost of interpreting the
> body of the loop. ?That exact same interpreter would be used to
> interpret the bodies of functions used to express loops using
> recursion, so it is not reasonable to expect this to improve
> performance. In fact, due to the inefficiency of the current function
> call mechanism in R, quite the opposite is true.
>
> As to the question: tail call optimization cannot be applied in R, at
> least not in a simple way, because the semantics of R provide access
> to the call stack via the sys.xyz functions and parent.frame and such.
> It might be possible to make some semantic changes, such as only
> guaranteeing access to the immediate caller, but there isn't much
> point unless/until the performance of the function calling mechanism is
> improved.
>
> Best,
>
> luke

To what extent does the recently introduced byte-code compilation
help here?

> On Sun, 17 Apr 2011, Mohit Dayal wrote:
>
>> Dear R-programmers,
>>
>> I am trying to program a Newton-Raphson in R (yes, i will try GSL, not
>> right
>> now), and it would be a real boon if R had tail call elimination, so that
>> a
>> recursive program has a guarantee not to fail due to stack overflows,
>> given
>> how slow loops in R are. I did look at the documentation, but could not
>> find
>> a reason for it.
>>
>> Regards,
>> Mohit Dayal
>> Researcher
>> Applied Statistics & Computing Lab
>> ISB
>>
>> ? ? ? ?[[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> --
> Luke Tierney
> Statistics and Actuarial Science
> Ralph E. Wareham Professor of Mathematical Sciences
> University of Iowa ? ? ? ? ? ? ? ? ?Phone: ? ? ? ? ? ? 319-335-3386
> Department of Statistics and ? ? ? ?Fax: ? ? ? ? ? ? ? 319-335-3017
> ? Actuarial Science
> 241 Schaeffer Hall ? ? ? ? ? ? ? ? ?email: ? ? ?luke at stat.uiowa.edu
> Iowa City, IA 52242 ? ? ? ? ? ? ? ? WWW: ?http://www.stat.uiowa.edu
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] Tail Call Elimination?
Dominick Samperi