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)
}
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?

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?

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.

Reply via email to