1. < mathematics > (Or "map", "mapping") If D and C are sets (the domain and codomain) then a function f from D to C, normally written "f : D -> C" is a subset of D x C such that:
1. For each d in D there exists some c in C such that (d,c) is an element of f. I.e. the function is defined for every element of D.
2. For each d in D, c1 and c2 in C, if both (d,c1) and (d,c2) are elements of f then c1 = c2. I.e. the function is uniquely defined for every element of D.
See also image , inverse , partial function .
Computing usage derives from the mathematical term but is much less strict. In programming (except in functional programming ), a function may return different values each time it is called with the same argument values and may have side effects .
A procedure is a function which returns no value but has only side-effects . The C language, for example, has no procedures, only functions. ANSI C even defines a type , void , for the result of a function that has no result.