Subject: Constant functions

From: Edward Cherlin <[email-masked]>
Date: Mon, 18 Feb 2002 23:02:02 -0800

From: Invent Yourself <[email-masked]>
Date: Wed, 13 Feb 2002 19:53:00 -0500 (EST)

>On Thu, 14 Feb 2002, Jorge Llambias wrote:
>
>>
>> la xod cusku di'e
>>
>> >Well, I wasn't using "1" as an analog for "f", but as a 
polynomial.
>> >In other words, not its name, but its expression. So I don't see 
how the
>> >confusion concerning f(x) is relevant.
>>
>> The expression "x^2+x+1" is sometimes used to refer to the 
polynomial,
>> and other times to refer to the value that the polynomial takes on
>> for a given value in its domain. When we write f(x)=x^2+x+1, we
>> mean sometimes that the function f(x) is the funtion x^2+x+1,
>> and sometimes we mean that the value f(x) is equal to the value
>> x^2+x+1. In other words, we use the same expression to refer to
>> {lo te fancu} and to {lo ve fancu}. You are doing the same with
>> {li pa}. It's a very widespread practice in mathematics, and it
>> hardly ever leads to confusion, but it is the type of thing that
>> Lojban takes pride in differentiating.
>
>Yet in this case, I don't yet see how I could express the function 
"1" as
>distinct from the value "1". Do you?

TCLL 18.6, p. 438
How do we express "z = f(x)"? The answer is:
6.3) li zy du li ma'o fy.boi xy.

The construct "ma'o fy.boi" is the equivalent of an operator...

TCLL 18.21, p. 460
To change an operand into an operator, we use the cmavo "ma'o"...In 
fact, "ma'o" can be followed by any mekso operand, using the elidable 
terminator "te'u" if necessary.

That means we can turn an expression into a function with "ma'o". 

So any function with constant value 1 from any non-empty domain to 
any range containing 1 is evaluated by "li ma'o li pa", and we can 
say things like

zoi .kuot lambda(x).1 .kuot fancu lo'i namcu lo'i namcu li ma'o 
li pa

ko'a goi le fancu be jo'ite'u be'i lo'i li pa be'i li ma'o li pa 
be'o...

where "jo'ite'u" is the empty vector, the vector of length 0.

Note: The use of the terms "operand" and "operator" in the RefGrammar 
is not always consistent with the practice of mathematicians. 

An expression is an operand only if a operator is being applied to 
it. 

Most programming languages describe functions as operators, except 
for the two families founded by mathematicians, namely APL and LISP. 
LISP does not distinguish data objects from function objects (both 
are just lists), while APL has a three-level type hierarchy: arrays 
(data), functions (data-->data), and operators 
(functions-->functions, or as an option in some dialects, 
functions-->data)