1. <mathematics> (or "map", "mapping") Intuitively, a rule for associating a member or a sequence of members of one set (the domain) with a member of another set (the range). 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 composition, computable function, definability of a function, minimization, n-adic function, partial function, primitive recursion, propositional function, recursive function, recursive theory, representation of a function, total function, truth function
2. <programming> 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.
[FOLDOC] and [Glossary of First-Order Logic]
Try this search on OneLook / Google