# Computer Dictionary Online

Medical Dictionary   Law Dictionary   Legal Dictionary   Website Design
 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z

tupling

A program transformation where several results are returned from a single traversal of a data structure. E.g.

```		mean l = sum l / length l
```

```			==>
```

```		mean l = s/n
where
(s,n) = sumLen l
```

```		sumLen []     = (0,0)
sumLen (x:xs) = (s+x, n+1)
where
(s,n) = sumLen xs
```

In procedural languages this technique is known as horizontal loop combination because it uses one loop to calculate several results.

Another form of tupling transformation is used to avoid repeated evaluation where a function generates several identical calls to itself. By analysing the pattern of recursion (see descent function) it is possible to arrange for these identical calls to share results. E.g.

```		fib 0 = 1
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
```

```			==>
```

```		fib n = v where (_,v) = fibt n
fibt 0 = (1,1)
fibt n = (u+v,u) where (u,v) = fibt (n-1)
```

(1995-01-12)

 Contact the Computer Dictionary Online  ::  Link to the Computer Dictionary Online  ::  Disclaimer for Computer Dictionary Online Computer Dictionary Online Copyright © 2018