> On Oct 1, 2016, at 8:44 AM, Jan Kacaba <[email protected]> wrote:
>
> Hello Dear R-help
>
> I tried to understand how recursive programming works in R. Bellow is
> simple recursive function.
>
> binary1 <- function(n) {
> if(n > 1) {
> binary(as.integer(n/2))
> }
> cat(n %% 2)
> }
Did you mean to type "binary1(as.integer(n)"?
> When I call binary1(10) I get 1010. I believe that cat function stores
> value to a buffer appending values as recursion proceeds and at the
> end it prints the buffer. Am I right?
No. Read the ?cat help page. It returns NULL. The material you see at the
console is a side-effect.
>
> I tried to modify the function to get some understanding:
>
> binary2 <- function(n) {
> if(n > 1) {
> binary2(as.integer(n/2))
> }
> cat(n %% 2, sep=",")
> }
>
> With call binary2(10) I get also 1010. Why the output is not separated
> by commas?
I think because there is nothing to separate when it prints (since there was no
"buffer".
>
> If I use in binary2 function cat(n %% 2, ",") on last line, the output
> is separated. Outside recursive function the cat function prints
> separated output in both cases e.g. cat(c(1:10), sep=",") and
> cat(c(1:10), ",")
>
> Derek
>
> ______________________________________________
> [email protected] 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.
David Winsemius
Alameda, CA, USA
______________________________________________
[email protected] 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.