# History: BPFK Section: MEX Operators

## Preview of version: 37 (current)

## Proposed Definitions And Examples

## Impact

There is no changes to the definitions. I've tried to make them follow the CLL as closely as possible. Further since there is so little mekso literature, there is almost nothing to 'break' anyway. I have made a few suggestions to extend the definitions to expand the functionality some operators. This can be ratified formally if the bpfk/community feels that they add to utility more than they subtract in flexibility.

I (mi'e Ross) am not the first person to take up this section. Minimiscience did some work before I came along. He (She?) is obviously a programmer and seem to have been caught up in designing a consistent type system. Evidence of the beginnings of the system has been moved to the section below this. I am of the opinion that we will never be able to describe how these operators work in every context and so we should stick to giving the base definition and allow authors/speakers to use the operators in other contexts in accordance with common mathematical convention. For the moment, the only hangover of Minimiscience's type system in the above definitions is for {pi'i}.

This said, I think there is merit in the idea to specify default values for omitted arguments or alternatively treat the functions as polymorphic and give definitions of different combinations of arguments it gets given. The latter seems blotted/ overkill but would give definite meanings to operators that get passed tu'o. I haven't done either above.

## Minimiscience's Type System

- When an expression is here said to be "undefined," it means that, in the absence of external information about the interpretation of the expression, it is semantically void, meaningless, and/or nonsensical.
- Mathematical operators take one or more operands, which are here referred to by an 'x' subscripted with a number.
- Operators defined here as "unary" are defined as operating on their first operand that is not equal to
*tu'o*(referred to as "the operand" within the respective definitions), regardless of where it occurs in the operand list.- See also: CLL section 18.16, example 16.3 and the paragraph before it, in which the operand of
*va'a*is in the x_1 place; CLL section 18.14, example 14.1, in which the operand of*va'a*is in the x_2 place.

- See also: CLL section 18.16, example 16.3 and the paragraph before it, in which the operand of
- If all operands of an operator are
*tu'o*, the value of the expression is equal to*tu'o*. - If an operand described in an operator's definition is missing from the operator's operand list and there is no default value given, the missing operand shall be interpreted as
*tu'o*. - If one or more extra operands not described in an operator's definition are present in the operator's operand list, they affect the evaluation in an undefined or unspecified manner analogous to
*sumti*attached to a*selbri*with*do'e*. - Lojban mathematical operators are defined in terms of conventional mathematical operators, and thus there is an implicit type system used in determining the value of an expression.
*Mekso*operands may be of any of the following types:- number — a "number" production in the formal grammar, usually corresponding to an element of the complex plane
- array — an array, vector, ordered list/set, or tuple of one or more
*mekso*values, constructed using*jo'i* - matrix — a composition of one or more arrays of numbers, all of the same size, constructed using
*pi'a*or*sa'i* - function

- If an operator is applied to operands of a type which its definition does not address, the expression is undefined.
- The operand
*tu'o*is polymorphic; its type in an expression is determined by its surrounding context. - Operator-specific type information (currently in the "Notes" subsections) needs to be included in the main definitions somehow without being too clunky.