Re: Function

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


On 2008-01-15 09:26:01 -0500, mAsterdam <mAsterdam_at_vrijdag.org> 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.

Fair.

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

Yes.

-- 

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

Original text of this message