> On Oct 1, 2016, at 8:44 AM, Jan Kacaba <jan.kac...@gmail.com> 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 > > ______________________________________________ > 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 http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. David Winsemius Alameda, CA, USA ______________________________________________ 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 http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.