Function Definitions

Function names
A function name is a sequence of words and parameter positions, separated by space characters.

Parameter positions must be separated by at least one word.

A function name that starts with a parameter position is a postfix function name. A function name that ends with a parameter position is a prefix function name. A function name that is both prefix and postfix is an infix function name. A function name that is neither prefix nor postfix, but contains at least a parameter position, is a circumfix function name. A function name that has no parameter position is parameterless.

Words
A word is what the Unicode Consortium defines as an identifier (see the |Unicode Standard Annex #31, Unicode Identifier and Pattern Syntax). Note that the standard libraries are written in English, and use only a subset of the 7-bit ASCII character set. No code will be added to the standard libraries that does not adhere to this rule. (It's conceivable to have library wrappers with localized names, e.g. for educational use. Not that to be useful, such a localization would need to have the associated documentation localized, and there would be the continuous work of keeping up with updates to the standard library.)

Regarding list 3 ("Candidate Characters for Inclusion in Identifiers"), the following characters are considered:
 * ID Nonstart characters:
 * 002D (-) HYPHEN-MINUS
 * 2010 (‐) HYPHEN
 * Characters that will never be ID characters:
 * 0027 (') APOSTROPHE
 * 002E (.) FULL STOP
 * 003A COLON
 * Characters that are currently not ID characters, but may become ID characters in the future as feedback from affected user groups becomes available:
 * 00B7 (·) MIDDLE DOT
 * 058A (֊) ARMENIAN HYPHEN
 * 05F3 (׳) HEBREW PUNCTUATION GERESH
 * 05F4 (״) HEBREW PUNCTUATION GERSHAYIM
 * 200C () ZERO WIDTH NON-JOINER*
 * 200D () ZERO WIDTH JOINER*
 * 2019 (’) RIGHT SINGLE QUOTATION MARK
 * 2027 (‧) HYPHENATION POINT
 * 30A0 (=) KATAKANA-HIRAGANA DOUBLE HYPHEN

Regarding list 4 ("Candidate Characters for Exclusion from Identifiers", characters from obsolete, liturgical, musical, or extremely rare scripts): These characters are all excluded.

Upper-case and lower-case characters are equivalent. (I.e. rule R5 is invoked: identifier equivalence is determined in a case-insensitive way.)

Parameter positions
In a function name, a parameter position is indicated by a full stop.

Examples
o. p q. r. . - . -.

Function definition
o. p q. r. in a, b, c -- list of names a nonnegative: a >= 0 -- named assertion a is Rational -- unnamed assertion, determines a's type b rational: b is Rational -- named type assertion r = sqrt a*a + b*b + c*c -- intermediate computation out r -- result expression result > 0 -- postcondition

Shorthands
f x = XXX is equivalent to f. in x   out XXX

f x = XXX where a = YYY b = ZZZ (XXX contains a and b) is equivalent to f. in x   a = YYY b = ZZZ out XXX

Calling a function
A) Inline: o (...) p q (...) r (...) B) Multiline: o. p q. r. ...      ...       ...

Chainable functions
Declare an infinite series of functions Format (example operator is +): (. +) . -- left-associative . (+ .) -- right-associative Inline call: . + . + . + ... Multiline call: +   .    .    .    ...