[R] return value of {....}

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Mon Jan 9 17:59:12 CET 2023


Perhaps the following may be of use to you.

Consider:

> f <- function(){ x <- 3; function(y) x+y}
> x <- 5

##What does this give?
> f()
## Why?
## How about this?
>f()(10)
## Why?

## If you remove "x <- 3" from the above, what will you get when you repeat
the exercise?

-- Bert

On Mon, Jan 9, 2023 at 8:29 AM Bert Gunter <bgunter.4567 using gmail.com> wrote:

> Unless you do something special within a function, only the value(s)
> returned are available to the caller. That is the essence of
> functional-type programming languages.
>
> You need to read up on (function) environments in R . You can search on
> this. ?function and its links also contain useful information, but it may
> too terse to be explicable to you. There are of course many available
> references on the internet.
>
> I believe your mental model for how R works is flawed, and you have some
> homework to do to correct it. I may be wrong, naturally, but you can judge
> by looking at some tutorials.
>
> -- Bert
>
> On Mon, Jan 9, 2023 at 6:47 AM akshay kulkarni <akshay_e4 using hotmail.com>
> wrote:
>
>> Dear members,
>>                              I have the following code:
>>
>> > TB <- {x <- 3;y <- 5}
>> > TB
>> [1] 5
>>
>> It is consistent with the documentation: For {, the result of the last
>> expression evaluated. This has the visibility of the last evaluation.
>>
>> But both x AND y are created, but the "return value" is y. How can this
>> be advantageous for solving practical problems? Specifically, consider the
>> following code:
>>
>> F <- function(X) {  expr; expr2; { expr5; expr7}; expr8;expr10}
>>
>> Both expr5 and expr7 are created, and are accessible by the code outside
>> of the nested braces right? But the "return value" of the nested braces is
>> expr7. So doesn't this mean that only expr7 should be accessible? Please
>> help me entangle this (of course the return value of F is expr10, and all
>> the other objects created by the preceding expressions are deleted. But
>> expr5 is not, after the control passes outside of the nested braces!)
>>
>> Thanking you,
>> Yours sincerely,
>> AKSHAY M KULKARNI
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list