BPFK Section: MEX
- This page is imported from version 84 of the page BPFK Section: MEX from the lojban Tiki.
Contents
- 1 Proposed Definitions And Examples
- 1.1 cmavo: bi'e (BIhE)
- 1.2 cmavo: fu'a (FUhA)
- 1.3 cmavo: jo'i (JOhI)
- 1.4 cmavo: ku'e (KUhE)
- 1.5 cmavo: ma'o (MAhO)
- 1.6 cmavo: mo'e (MOhE)
- 1.7 cmavo: na'u (NAhU)
- 1.8 cmavo: ni'e (NIhE)
- 1.9 cmavo: nu'a (NUhA)
- 1.10 cmavo: pe'o (PEhO)
- 1.11 cmavo: ti'o (SEI)
- 1.12 cmavo: te'u (TEhU)
- 1.13 cmavo: vei (VEI)
- 1.14 cmavo: ve'o (VEhO)
- 2 Issues
- 3 Impact
Proposed Definitions And Examples
cmavo: bi'e (BIhE)
Proposed Definition
Indicates an operator has precedence over unmarked operators. When an operator is prefixed with this cmavo, it becomes automatically of higher precedence than other operators not so prefixed. If more than one operator has a bi'e prefix, grouping is to the right; multiple bi'e prefixes on a single operator are not allowed.
See Also
Proposed Keywords
- high priority operator
- precedence operator
Usage Examples
- li ci su'i vo bi'e pi'i mu du li reci
- 3 + (4 × 5) = 23 (CLL, 18.5.9)
Notes
This is distinct from the use of mathematical brackets {vei} and {ve'o}.
Issues
Xorxes has a plan to replace this by expanding the use of {bo}
cmavo: fu'a (FUhA)
Proposed Definition
Marks the mekso expression as using Reverse Polish (RP) notation. RP notation is always marked by an explicit fu'a at the beginning of the expression. Operators acting in RP are required to have two operands (though {tu'o} and {ge'a} can assist when using unitary and ternary operators respectively).
See also
- {pe'o} — forethought operator flag
- {tu'o} — null operand
- {ge'a} — null operator
Proposed Keywords
- Reverse Polish flag
Usage Examples
(natural example: doi jbokaj li fu'a pa boi re su'i ci su'i)
- li fu'a reboi ci su'i du li mu
- (RP) (2 3 +) = 5 (CLL, 18.16.1)
- li fu'a reboi ci pi'i voboi mu pi'i su'i du li rexa
- (RP) (2 3 x) (4 5 x) + = 26 (CLL, 18.16.2)
- li fu'a ciboi muboi vu'u du li fu'a reboi tu'o va'a
- (RP) (3 5 -) = (RP) (2 null) negative (CLL, 18.16.3)
- li cinoki'oki'o du li fu'a biboi ciboi panoboi ge'a gei
- 30,000,000 = (RP) 8 (3 10 null) exp (CLL, 18.16.4)
Issues
It seems quite arbitrary that operators acting in reverse polish notation are required to have exactly 2 operands. Especially considering that in polish notation, operators are allowed to have as many operands as they like. It does not make semantic sense for all operators (for example the negation operator, used in the example usage above). Though there is a problem in determining which operands belong to which operator, and the solution currently is quite elegant for usage, it lacks symmetry with forethought equivalent and seems arbitrary.
cmavo: jo'i (JOhI)
Proposed Definition
Joins a sequence of simple operands or bracketed full expressions into a vector. A vector may have any number of components. It's corresponding terminator {te'u} is elidable.
See also
- {te'u} — Mekso terminator for NAhU, NIhE, MOhE, MAhO, and JOhI
Proposed Keywords
- vector flag
Usage Examples
- li jo'i paboi reboi te'u su'i jo'i ciboi voboi du li jo'i voboi xaboi
- vector (1, 2) + vector (3, 4) = vector (4, 6) (CLL, 18.15.1)
- li ma'o fy. boi pa jo'i re jo'i ci
- f(1,[2,[3]]) (Re: ~91~lojban~93~ loi preti be fi lo nincli zo'u tu'e, Thu, 23 Jan 2003 11:10:25 -0800, Robin Lee Powell, link)
Notes
It is the only member of selma'o JOhI
"Vector" may not be the mathematically best way to describe it. "Ordered list" or "ordered tuple" is better. This wording is fine, though, in the computer science sense.
cmavo: ku'e (KUhE)
Proposed Definition
This is the elidable terminator of operators when they are acting in forethought mode. It serves to distinguish where the operands of one operator end and another begin.
See Also
- {pe'o} Forethought operator flag
Proposed Keywords
- forethought operator terminator
Usage Examples
- li py. su'i va'a ny. ku'e su'i zy du li xy.
- p + (negative n) + z = x (CLL, 18.6.2)
cmavo: ma'o (MAhO)
Proposed Defintion
This flag converts letteral string or other mathematical expression (mex) operand into a mex operator. Its elidable terminator is {te'u}.
See Also
Proposed Keywords
- operand to operator flag
Usage Examples
- li zy du li ma'o fy.boi xy.
- z = f(x) (CLL, 18.6.3)
Notes
The CLL has the following observation: There is a potential semantic ambiguity in ma'o fy. ~91~te'u~93~ if fy. is already in use as a variable: it comes to mean "the function whose value is always 'f' ". However, mathematicians do not normally use the same lerfu words or strings as both functions and variables, so this case should not arise in practice.
cmavo: mo'e (MOhE)
Proposed Definition
Converts a sumti to a mex operand. Intended to allow dimensions to be embedding into mex expressions. It is also used for "folk quantifiers", also known as collective nouns. It precedes the sumti. Its elidible terminator is {te'u}.
See Also
- {na'u} — selbri to operator
- {ni'e} — selbri to operand
Proposed Keywords
- Sumti to mex operand
Usage Examples
- li mo'e re ratcu su'i mo'e re ractu du li mo'e vo danlu
- (2 rats) + (2 rats) = (4 animals) (CLL, 18.18.3)
- mi viska vei mo'e lo'e lanzu ve'o cinfo
- I see (a typical family) of lions (CLL, 18.18.4)
- I see a pride of lions
- li mo'e lo spaji su'i mo'e lo spaji du li mo'e lo mutce spaji
- A suprise + a suprise = a big suprise (Re: mo'e (was: RE: ~91~lojban~93~ useless selmaho?, Sun, 2 Sep 2001 03:19:28 +0200, Adam Raizen, link)
cmavo: na'u (NAhU)
Proposed Definition
The cmavo "na'u" makes a selbri into an operator. In general, the first place of the selbri specifies the result of the operator, and the other unfilled places specify the operands. Its elidible terminator is {te'u}. It is also used to construct questions about operators.
See Also
- {ni'e} — selbri to operand
- {mo'e} — sumti to operand
- {te'u} — terminator
Proposed Keywords
- selbri to operator
Usage Examples
- li na'u tanjo te'u vei pai fe'i vo ~91~ve'o~93~ du li pa
- tan ( pi / 4 ) = 1 (similar to CLL, 18.18.1)
- li re na'u mo re du li vo
- 2 what-operator? 2 = 4 (CLL, 18.19.4)
- .i go li cy. na'u klesi .abu lo'o.eli cy. na'u klesi by. jetnu gi cy. kampu klesi .abu joi by
- If C subset A and C subset B, then C is called a common subset of A and B. (Fundamental Concepts Of Higher Algebra, Translation by Nick Nicholas, link )
'
Notes
This comment applies exclusively to CLL example 18.18.1. I'm not sure if it therefore belongs here. The CLL example of this seems to be needlessly complicated (using the value of pi/2 where the function is undefined). I've changed the example here slightly to avoid any disputes about validity.
cmavo: ni'e (NIhE)
Proposed Definition
The cmavo "ni'e" makes a selbri into an operand. The x1 place of the selbri generally represents a number, and therefore is often a ``ni abstraction. The "ni'e" makes that number available as a mekso operand. A common application is to make equations relating pure dimensions.
See Also
- {na'u} — selbri to operator
- {mo'e} — sumti to operand
Proposed Keywords
- selbri to operand
Usage Examples
- li ni'e ni clani ~91~te'u~93~ pi'i ni'e ni ganra ~91~te'u~93~ pi'i ni'e ni condi te'u du li ni'e ni canlu
- Length x Width x Depth = Volume (CLL 18.18.2)
- ibabo le jinga korbi goi jyky cu du le cmarai mulna'u poi zmadu li ni'e ni ce'u cuxna fe'i ni'e zmarai ni cumki jinga
- A winning threshold is determined as follows: divide the number of voters by the maximum number of slots to fill, and take the lowest integer larger than this number. (Single Transferrable Vote, pycyn?, Saturday 21/6/2003 22:48:27 UTC?, link)
cmavo: nu'a (NUhA)
Proposed Definition
The cmavo "nu'a" is the inverse of {na'u}, and allows a mekso operator to be used as a normal selbri, with the first place being the result of applying the operator to the other places.
See Also
- {na'u} — selbri to operator
- {me} — sumti to selbri
Proposed Keywords
- operator to selbri
Usage Examples
- li ni'umu cu nu'a va'a li ma'umu
- -5 is the negative of +5 (CLL, 18.19.3)
Issues
It's been pointed out by Xorxes that {me} could be expanded to do this. {nu'a} could be moved to ME for backwards compatibility. It has had (almost) no usage in the wild (corpora + mailing list) (literally 6 mentions on IRC). But it does have a nice symmetry with na'u
cmavo: pe'o (PEhO)
Proposed Definition
The optional flag that indicates a forethought mekso operator. Forethought mode is also known as Polish notation. When used in conjunction with {ku'e}, it acts like brackets around the function and its arguments.
See Also
- {fu'a} — Reverse Polish flag
- {ku'e} — forethought operator terminator
Proposed Keywords
- forethought flag
Usage Examples
- li pe'o su'i paboi reboi ciboi ku'e du li xa
- (+ 1 2 3 ) = 6 (CLL 18.6.4)
- li py. su'i pe'o va'a ny. ku'e su'i zy du li xy.
- p + ( -n) + z = x (CLL 18.6.5)
- li zy du li pe'o ma'o fy.boi xy. ku'e
- z = ( f(x) ) (CLL 18.6.6)
Notes
When using forethought mekso, be sure that the operands really are operands: they cannot contain regular infix expressions unless parenthesized with {vei} and {ve'o}. Eg li + 2 x 3 4 parses as 2 + ( 3 x 4 ) and not ( 2 x 3 ) + 4.
cmavo: ti'o (SEI)
Proposed Definition
This, like {sei}, attaches a commentary about the text. The purpose of this is to define a heirarchy of precedence for mex operators.
The format of a {ti'o} declaration has not been formally established, but presumably would take the form of mentioning a mekso operator and then giving it either an absolute numerical precedence on some pre-established scale, or else specifying relative precedences between new operators and existing operators. Typically only operators of selma'o VUhU would be given higher precedence, whereas operators created with {na'u}, {ni'e} or {ma'o} would remain at the lowest level of precedence.
If such a system was created, there would most likely be a predefined set of precedence levels that would match common mathematics conventions and which could easily be referenced. In such a system one would expect that multiplication would be of higher precedence than addition
See Also
Proposed Keywords
- metalinguistic operator precedence declaration
- mex precedence
Usage Examples
- ti'o zo pi'i ce'o zo su'i porsi li pa su'i re pi'i ci du li ze
- ("x" and "+" is an ordered sequence) 1 + 2 x 3 = 7 (created for this, mi'e RossOgilvie, 16/6/10)
Issues
This isn't really a definition; more a suggestion of what the intention of this cmavo should be. A good system needs to be worked out. I could find no mention of it in the mailing list.
cmavo: te'u (TEhU)
Proposed Definition
An elidable terminator for several mex related {selma'o}, namely NAhU, NIhE, MOhE, MAhO, and JOhI. These {selma'o} are generally conversion tags.
See Also
- {na'u}
- {ni'e}
- {mo'e}
- {ma'o}
- {jo'i}
Proposed Keywords
- mex conversion terminator
Usage Examples
- li jo'i paboi reboi te'u su'i jo'i ciboi voboi du li jo'i voboi xaboi
- the-number array( one, two ) plus array( three, four) equals the-number array( four, six) (CLL 18.15.1)
- li na'u tanjo te'u vei pai fe'i vo ~91~ve'o~93~ du li pa
- the-number the-operator tangent( pi / 4 ) = the-number 1 (CLL 18.18.1)
- li ni'e ni clani ~91~te'u~93~ pi'i ni'e ni ganra ~91~te'u~93~ pi'i ni'e ni condi te'u du li ni'e ni canlu
- Length × Width × Depth = Volume (CLL 18.18.2)
cmavo: vei (VEI)
Proposed Definition
This is the mathematical left bracket. Used to group mex expressions. For example, brackets are used to turn a mex expression into an operand for use by a forethought operator, or to place a mex expression in a subscript. The right bracket {ve'o} is elidable. {vei} and {ve'o} are necessary for any non-simple mekso used as a quantifier.
See Also
- {ve'o} — right bracket
- {ku'e} — forethought operator teminator
Proposed Keywords
- left bracket
Usage Examples
- li vei ny. su'i pa ve'o pi'i vei ny. su'i pa ~91~ve'o~93~ du li ny. ~91~bi'e~93~ te'a re su'i re bi'e pi'i ny. su'i pa
- (n+1)(n+1) = n~94~2 + 2n + 1 (CLL 18.5.10)
- xy.boixi vei ny. su'i pa ~91~ve'o~93~
- x sub ( n + 1) (CLL 18.13.4)
- vei ci .a vo ve'o prenu cu klama le zarci
- ( three or four ) people go-to the market. (CLL 18.17.1)
cmavo: ve'o (VEhO)
Proposed Definition
This is the mathematical right bracket. Used to group mex expressions. For example, brackets are used to turn a mex expression into an operand for use by a forethought operator, or to place a mex expression in a subscript. As a terminator, it is elidable. The corresponding left bracket is {vei}. {vei} and {ve'o} are necessary for any non-simple mekso used as a quantifier.
See Also
- {vei} —left bracket
- {tu'e} — mex conversion terminator
Proposed Keywords
- right bracket
Usage Examples
- li vei ny. su'i pa ve'o pi'i vei ny. su'i pa ~91~ve'o~93~ du li ny. ~91~bi'e~93~ te'a re su'i re bi'e pi'i ny. su'i pa
- (n+1)(n+1) = n~94~2 + 2n + 1 (CLL 18.5.10)
- xy.boixi vei ny. su'i pa ~91~ve'o~93~
- x sub ( n + 1) (CLL 18.13.4)
- vei ci .a vo ve'o prenu cu klama le zarci
- ( three or four ) people go-to the market. (CLL 18.17.1)
Issues
The write up above pretty much follows the CLL. However there has been at least one proposal (and I suspect there might be others) to reform the mex grammar to simplify it, mostly by merging selma'o. I myself am unhappy by the complexity of mex; specifically the limitations of {fu'a}, and the current uses of {tu'o} and {ge'a} (as noted above).
Also, the definition of {ti'o} is almost apologetic in its uselessness. As the CLL suggests, a working party needs to hammer out a standardised format for {ti'o}, put together a common convention precedence list for VUhU and publish it for reference. (In fact if such a list were published, then perhaps it should apply by default. The CLL suggests that the common convention for order of operations applies in mex already, and that would provide a sound way to implement this)
Impact
There is little impact from this, as mex is so underused. The only substantial work involving mex that I could find was [http://www.lojban.org/cgi-bin/corpus/show/Fundamental%20Concepts%20Of%20Higher%20Algebra Fundamental Concepts Of Higher Algebra], by Nick Nicholas. Regardless, there is no recommendation to change the CLL definitions.