Array notation

Array notation is a notation for evaluating 1-dimensional arrays created by Jonathan Bowers. Later, he decided to create a notation that evaluated multidimensional arrays (Extended Array Notation) and finally rolled both into one, creating BEAF.

Rules

 * 1) \(\{a\} = a\) and \(\{a,b\} = a^b\). The latter was originally \(a+b\), but this was changed to avoid confusion with the second rule; i.e. \(\{a,1\} = a+1 \not= a = \{a,1\}\).
 * 2) \(\{a,b,c,\ldots,n,1\} = \{a,b,c,\ldots,n\}\)
 * 3) \(\{a,1,b,c,\ldots,n\} = a\)
 * 4) \(\{a,b,1,\ldots,1,c,d,\ldots,n\} = \{a,a,a,\ldots,\{a,b-1,1,\ldots,1,c,d,\ldots,n\},c-1,d,\ldots,n\}\). In other words, if the third element is 1, then:
 * 5) *all elements before the next non-1 element become the first element,
 * 6) *the last of the above becomes the original array with the second element decreased by 1, and
 * 7) *the said non-1 element is decreased by one.
 * 8) If rules 1 to 4 do not apply, \(\{a,b,c,d,\ldots,n\} = \{a,\{a,b-1,c,d,\ldots,n\},c-1,d,\ldots,n\}\)

Extended Operators
Bowers also invented a set of "extended" operators to complement Array Notation.

\(a \{c\} b = \{a,b,c\}\)

For example, \(3 \lbrace3 \rbrace3 = \lbrace 3,3,3 \rbrace\) = tritri

In the array  { a,b,c,d,e,f,g,h}, a, b, and c are all shown in numeric form(^), with d sets of curly braces { }. To represent e, Bowers uses e - 1 sets of square brackets [ ] above and below the sentence, f is represented with f - 1 Saturn-like rings around the sentence, and g is represented by g - 1 sets of X-wing brackets around it. h is represented with square plates with opposite edges bent 90 degrees inwards (i.e. 3-dimensional versions of square brackets.)