Re: Function

From: Kira Yamato <kirakun_at_earthlink.net>
Date: Tue, 15 Jan 2008 14:25:56 -0500
Message-ID: <2008011514255675249-kirakun_at_earthlinknet>


On 2008-01-15 13:22:50 -0500, Bob Badour <bbadour_at_pei.sympatico.ca> said:

> Kira Yamato wrote:
> 

>> On 2008-01-15 09:26:01 -0500, mAsterdam <mAsterdam_at_vrijdag.org> said:
>>
>>> vldm10 wrote:
>>>> [...]
>>>>> 
>>>>> 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.
> 
> Theoretically, the universal subtype has an empty set of values and the 
> union of all operations.

Can you explain a bit more what you mean here?

What is the universal subtype? If it is an empty set, where is it used?

Can this type be an attribute in a relation? I would think not, since relational algebra requires all values in the tuples be non-null.

What do you mean by union of all operations?

> 
> 
>>>>> 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.
> 
> I got "and", "but", and "or". They'll get you pretty far. (Apologies to 
> our European friends and the younger crowd in the audience for the 
> inside joke.)

Hmm... Apparently, I'm an outsider. :)

> 
> 
>>>>> 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.
> 
> If one considers internal state an input, I am not entirely sure what 
> you said is true.

Well if you go that far, then since all Turing machines are deterministic, hence it's just one big function.

> 
> 
>>>>> 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.
> 
> Technically, in the standard vocabularies, every operator is a symbol 
> not a function.

But every operator is also a function though.

For example, take the addition operator on a set of integers Z. Then for every pair of values x1, x2 in Z there exists a value y in Z such that

        x1 + x2 = y.
So, I can define the function

        f : Z x Z --> Z
by the formula

        f(a, b) = a + b.

This is certainly a function. So, every operator is indeed a function also.

-- 

-kira
Received on Tue Jan 15 2008 - 20:25:56 CET

Original text of this message