Do you mean that if you operated on a list it would look like this: #lang racket
(define (running-average-of-3 l2) (define-values (_1 _2) (for/fold ((current (second l2)) (prior (first l2))) ((next (rest (rest l2)))) (displayln (/ (+ prior current next))) (values next current))) (void)) (running-average-of-3 '(1 2 3 4 5 6 7 8 9 0)) On May 26, 2012, at 12:56 AM, Harry Spier wrote: > I can use for/fold to loop through a sequence while having the current > element and the previous element of the sequence still available by > doing something like this. > > (for/fold ([previous-element-in-sequence '()][list-being-created '()]) > ( [current-element-in-sequence sequence]) > (do some stuff) > .... > (values current-element-in-sequence > (cons something list-being-created))) > > But what I want is to be able to loop through a sequence while having > the prior, the current and the next element available. > > I'm sequencing through a representation of lines of a black and white > page of text showing where the black pixels are and from that > producing a graph showing the connectivity of the black pixel strips > on each line to the ones on the lines above and below it. > > Using for/fold I'm able to code the graph of connectedness of the > black strips on each line to the prior line in a very straightforward > way, but I'd like to graph in both directions both to the prior line > and to the next line at the same time. > > Is there a simple way to loop through a sequence and have the prior, > current and next element available at the same time. > > Thanks, > Harry > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users