Microsoft Store
 

Iteration


 

:This article discusses a concept which is exploited in computer programming (but which originated before it). For use in the Japanese and Chinese languages see iteration mark.

Related Topics:
Computer programming - Iteration mark

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Iteration is the repetition of a process, typically within a computer program. It can be used both as a general term, synonymous with repetition, and to describe a specific form of repetition with a mutable state.

Related Topics:
Process - Computer program - Mutable

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

When used in the first sense, recursion is an example of iteration, but typically using a recursive notation, which is typically not the case for iteration.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

However, when used in the second (more restricted) sense, iteration describes the style of programming used in imperative programming languages. This contrasts with recursion, which has a more declarative approach.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Here an example of iteration, in imperative pseudocode:

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

var i, a := 0 // initialize a before iteration

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

for i from 1 to 3 { // loop three times

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

a := a + i // increment a by the current value of i

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

}

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

print a // the number 6 is printed

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

In this program fragment, the value of the variable i changes over time, taking the values 1, 2 and 3. This changing value—or mutable state—is characteristic of iteration.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Iteration can be done in functional programming languages. The following example is in Scheme:

Related Topics:
Functional programming language - Scheme

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

(define (sum n)

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

(define (iter i result)

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

(if (

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

(+ i (iter (+ i 1) result))

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

result))

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

(iter 0 0))

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

An iterator is an object that wraps iteration.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~