tupling

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)
This article is provided by FOLDOC - Free Online Dictionary of Computing (foldoc.org)
Mentioned in
Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.