Haskell is the prototypical lazy evaluation language. One can compute a Fibonacci sequence by the Haaskell equivalent of the following R code.
> fibs <- c(0, 1, rep(0, 8)) > fibs[3:10] <- fibs + fibs[-1] This works as follows. fibs = 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 fibs = 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 When one adds fibs to fibs[-1], one is effectively adding diagonally: fibs[3] <- fibs[1] + fibs[2] fibs[4] <- fibs[2] + fibs[3] fibs[5] <- fibs[3] + fibs[4] etc. In Haskell, the value of fibs[3] used to compute fibs[4] is the value just created by adding fibs[1] and fibs[2]. Similarly the value of fibs[4] used to compute fibs[5] is the value that was just created in the previous addition. In other words: fibs[3] <- fibs[1] + fibs[2] # 0 + 1 = 1 fibs[4] <- fibs[2] + fibs[3] # 1 + 1 = 2 fibs[5] <- fibs[3] + fibs[4] # 1 + 2 = 3 fibs[6] <- fibs[4] + fibs[5] # 2 + 3 = 5 etc. But if you actually carry out this calculation in R, this is you get. >v <- c(0, 1, rep(0, 8)) >v [1] 0 1 0 0 0 0 0 0 0 0 >v[3:10] <- v + v[-1] Warning messages: 1: In v + v[-1] : longer object length is not a multiple of shorter object length 2: In v[3:10] <- v + v[-1] : number of items to replace is not a multiple of replacement length >v [1] 0 1 1 1 0 0 0 0 0 0 Is there any way to make this work? *-- Russ * [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list 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.