The following cmavo are discussed in this section:
boi 
BOI 
numeral/lerfu string terminator 
va'a 
VUhU 
negation/additive inverse 
pe'o 
PEhO 
forethought flag 
ku'e 
KUhE 
forethought terminator 
ma'o 
MAhO 
convert operand to operator 
py. 
BY 
letter “p” 
xy. 
BY 
letter “x” 
zy. 
BY 
letter “z” 
fy. 
BY 
letter “f” 
The infix form explained so far is reasonable for many purposes, but it is limited and rigid. It works smoothly only where all operators have exactly two operands, and where precedences can either be assumed from context or are limited to just two levels, with some help from parentheses.
But there are many operators which do not have two operands, or which have a variable number of operands. The preferred form of expression in such cases is the use of “forethought operators” , also known as Polish notation. In this style of writing mathematics, the operator comes first and the operands afterwards:
li  su'i  paboi  reboi  ci[boi]  du  li  xa  
Thenumber  thesumof  one  two  three  equals  thenumber  six.  
sum(1,2,3) = 6

Note that the normally elidable number terminator boi is required after pa and re because otherwise the reading would be pareci = 123. It is not required after ci but is inserted here in brackets for the sake of symmetry. The only time boi is required is, as in Example 18.32 , when there are two consecutive numbers or lerfu strings.
Forethought mekso can use any number of operands, in Example 18.32 , three. How do we know how many operands there are in ambiguous circumstances? The usual Lojban solution is employed: an elidable terminator, namely ku'e. Here is an example:
li  py.  su'i  va'a  ny.  ku'e  su'i  zy  du 
Thenumber  “p”  plus  negativeof(  “n”  )  plus  “z”  equals 
li  xy.  
thenumber  “x”  .  
p + n + z = x

where we know that va'a is a forethought operator because there is no operand preceding it.
va'a is the numerical negation operator, of selma'o VUhU. In contrast, vu'u is not used for numerical negation, but only for subtraction, as it always has two or more operands. Do not confuse va'a and vu'u , which are operators, with ni'u , which is part of a number.
In Example 18.33 , the operator va'a and the terminator ku'e serve in effect as parentheses. (The regular parentheses vei and ve'o are NOT used for this purpose.) If the ku'e were omitted, the su'i zy would be swallowed up by the va'a forethought operator, which would then appear to have two operands, ny. and su'i zy. , where the latter is also a forethought expression.
Forethought mekso is also useful for matching standard functional notation. How do we represent “z = f(x)” ? The answer is:
Again, no parentheses are used. The construct ma'o fy.boi is the equivalent of an operator, and appears in forethought here (although it could also be used as a regular infix operator). In mathematics, letters sometimes mean functions and sometimes mean variables, with only the context to tell which. Lojban chooses to accept the variable interpretation as the default, and uses the special flag ma'o to mark a lerfu string as an operator. The cmavo xy. and zy. are variables, but fy. is an operator (a function) because ma'o marks it as such. The boi is required because otherwise the xy. would look like part of the operator name. (The use of ma'o can be generalized from lerfu strings to any mekso operand: see Section 18.21.)
When using forethought mekso, the optional marker pe'o may be placed in front of the operator. This usage can help avoid confusion by providing clearly marked pe'o and ku'e pairs to delimit the operand list. Example 18.32 to Example 18.34 , respectively, with explicit pe'o and ku'e :
Note: 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. An earlier version of the complex Example 18.119 came to grief because I forgot this rule.