Re: Function

From: Kira Yamato <>
Date: Tue, 15 Jan 2008 10:52:28 -0500
Message-ID: <2008011510522875249-kirakun_at_earthlinknet>

On 2008-01-15 09:26:01 -0500, mAsterdam <> said:

> vldm10 wrote:
>> I think it will be good to have two definitions for the functions in
>> your glossary.
>> Definition1    A function from A to B is a rule that assigns, to each
>> member of set A, exactly one member of set B.
>> And second definition is similar to Jan's suggestion, but slightly
>> changed:
>> Definition2
>> A function from A to B is a relation between A and B that associates
>> each element of A with exactly one element of B.
>> First definition says that a function do something. You can call it
>> intutive definition of a function. Here the function in fact is a
>> procedure as you mentioned.
>> Second definition is set theoretic.
> Another difference I see with Jan's is a sense of direction.
> How about this:
> cdt glossary proposal:

>>> [Codomain]
>>> See function, math context.
>>> [Domain]
>>> 1. Given a relation R, a domain is a set Sn such
>>> that for each tuple (A1, A2, ...An, ...Am) in R,
>>> An is an element of Sn.

This is not good enough. It is possible that a value exists in the domain Sn yet the relation has no corresponding tuple which holds that value for An.

>>> 2. A domain is a set of values: for example
>>> "integers between 0 and 255",
>>> "character strings less than 10 characters long",
>>> "dates".
>>> Sometimes used synonymously with type.

This seems right. A domain is just a set of values. In relational algebra, this set is required to be non-empty since attributes are non-null.

>>> 3. Domain of a function. See function, math context.

On the other hand, mathematics does not require a domain to be non-empty.

>>> [Function]
>>> For now we have to live with different meanings
>>> of _function_ when talking about databases:
>>> "The function of this function is to get the tuples from B
>>> that are functionally dependant on A."

No, there is always just one meaning of function in database.

>>> Three different contexts, but just about the same meaning:
>>> 1. General
>>> A purpose or use.
>>> 2. Math
>>> A binary mathematical relation over two sets D and C that associates
>>> with each element in D exactly one element in C.
>>> Set D is called the domain of the function, C its codomain.

Essentially correct, although to be rigorous you need to define how such binary relation can define the meaning of "associating each element in D exactly one element in C."

Not all binary relation has this property.

>>> 3. Software
>>> A subroutine, procedure, or method.

Yea. It's really an abused use of the term in software design. Subroutines in software has no clear domain since same input arguments can product different outputs.

>>> In both the math and software context, there is a sense of
>>> direction from domain (input) to codomain (output).
>>> For most purposes, this intuitive picture is good enough:
>>> |------------|
>>> --- x ---- >| f-machine |------ f(x) ----- >
>>> |------------|
>>> Where x is input in the "f-machine" and f(x) is output.


>>> notes:
>>> every operator is a function
>>> every function is a relation



Received on Tue Jan 15 2008 - 16:52:28 CET

Original text of this message