# Re: Function

From: mAsterdam <mAsterdam_at_vrijdag.org>
Date: Tue, 15 Jan 2008 17:29:40 +0100
Message-ID: <478cde16\$0\$85783\$e4fe514c_at_news.xs4all.nl>

Kira Yamato schreef:
> mAsterdam said:
>

```>> vldm10 wrote:
>>> I think it will be good to have two definitions for the functions in
>>> 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.
>>
>> 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.

Could you provide a better text?

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

Does the current text forbid that?

```>>>> 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.

It is worm season, it seems :-)

```>>>> 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.

Would s/meanings/uses/ take away your objection? If not, which one meaning?

```>>>> 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.

IMHO this goes way beyond the glossaries purpose. However, if you have a simple replacement that would cover this it would be welcome.

```>>>> 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.

I'll keep this for now. Let's hope somebody gets irritated enough to write a better piece.

```>>>>
>>>> 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.

```--