# Re: Function

Date: Tue, 15 Jan 2008 14:25:56 -0500

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

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

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

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

```

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