Nice example!

However, things do not always have a purpose beyond consistency: 

Since return(...) is a function call, it gets parsed like any other function 
call, and can be a part of a more complicated expression. 

The special semantics of terminating the caller will not take place until the 
return() subexpression is evaluated (which might not even happen - think 
function(x) quote(return(pi)) ). 

Tweaking the R syntax and semantics to special-case return() might be possible, 
but my gut feeling is that it would just lead to complications further down the 
line. 

- pd 

> On 30 Apr 2025, at 15:27 , Ivan Krylov via R-help <r-help@r-project.org> 
> wrote:
> 
> On Wed, 30 Apr 2025 11:15:02 +0200
> Ralf Goertz via R-help <r-help@r-project.org> wrote:
> 
>> If this is not an error what is its purpose?
> 
> From the point of view of the R syntax, everything is an expression.
> 
> One of the uses of return() being an expression is base::callCC(). The
> ability to use it inside an expression makes it possible to put it into
> a delayed-evaluation object and offer it as a continuation point to
> another function.
> 
> Admittedly obscure, but sometimes useful.
> 
> -- 
> Best regards,
> Ivan
> 
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd....@cbs.dk  Priv: pda...@gmail.com

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

Reply via email to