return value of {....}
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 at 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 at 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 at 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.