11,329
pages
Main article: Bird's array notation

Bird's array notation is a sibling of BEAF created by Chris Bird. This article serves as a walkthrough of the notation for newcomers.

Linear array notation behaves exactly like BEAF. For a walkthrough to BEAF, see Introduction to BEAF

## Dimensional Array Notation

Bird's dimensional array notation is the first section of his notation that differs in any way from its Bowerian counterpart. It's similar to BEAF except that the separator [x] in Bird's notation is synonymous with the separator (x-1) in Bowers' notation, and that angle brackets can be used to create placeholders for repeating arrays as follows:

{a<1>b} = {a,a,a,a...a,a,a} with b a's

{a<2>b} = {a<1>b[2]a<1>b...a<1>b[2]a<1>b} with b a<1>b's

{a<3>b} = {a<2>b[3]a<2>b...a<2>b[3]a<2>b} with b a<2>b's

{a<4>b} = {a<3>b[4]a<3>b...a<3>b[4]a<3>b} with b a<3>b's

and in general {a<n+1>b} = {a<n>b[n+1]a<n>b...a<n>b[n+1]a<n>b} with b a<n>b's

{a,b[n]c} = {a<n-1>b[n]c-1}

For example:

{4,3[3]3}

= {4<2>3[3]2}

= {4<1>3[2]4<1>3[2]4<1>3[3]2}

= {4<1>3[2]4<1>3[2]4<1>3[3]2}

= {4,4,4[2]4,4,4[2]4,4,4[3]2}

This is almost identical to Bowers' notation.

## Hyper-Dimensional Array Notation [needs to be improved]

The angle brackets can now be linear arrays and have their own rules.

Rule 1: If the angle bracket ends with 1, the 1 can be removed.

Rule 2: If the angle bracket starts with 0, subtract 1 from the first entry greater than 1 and make all the entries before that the number after the angle bracket.

Otherwise, the first entry behaves as the main entry.

For example: {5,3[3,3]2}

= {5<2,3>3}

= {5<1,3>3[2,3]5<1,3>3[2,3]5<1,3>3}

= {5<0,3>3[1,3]5<0,3>3[1,3]5<0,3>3[2,3]5<0,3>3[1,3]5<0,3>3[1,3]5<0,3>3[2,3]5<0,3>3[1,3]5<0,3>3[1,3]5<0,3>3}

= {5<3,2>3[1,3]5<3,2>3[1,3]5<3,2>3[2,3]5<3,2>3[1,3]5<3,2>3[1,3]5<3,2>3[2,3]5<3,2>3[1,3]5<3,2>3[1,3]5<3,2>3}

As you see, the length of the expression grows exponentially.

This is almost identical to the behavior of Bowers' superdimensional arrays.

## Nested Array Notation

Nested array notation is like hyper-dimensional array notation but it allows you to put arrays in the brackets or angle brackets, including other nested arrays.

For example, {4,4[1[1[1[2]2]2]2]2}

={4<0[1[1[2]1]1]1>4[1[1[1[2]2]2]2]1}

={4<0[1[1[2]2]2]1>4}

={4<4<4<1[2]2>4[1[2]2]1>4>4}

={4<4<4<1[2]2>4>4>4}

={4<4<4<4<1>4[2]1>4>4>4}

={4<4<4<4<1>4>4>4>4}

={4<4<4<4,4,4,4>4>4>4}

={4<4<4<3,4,4,4>4[4,4,4,4]4<3,4,4,4>4[4,4,4,4]4<3,4,4,4>4[4,4,4,4}4<3,4,4,4>4>4>4}

={4<4<4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[4,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[4,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[4,4,4,4}4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4[3,4,4,4]4<2,4,4,4>4>4>4}

The expressions get pretty long.

## Hyper-Nested Array Notation

This notation now adds the backslash sign (\)

The backshlash sign means nesting.

1\2 means iterating dimensional seperator

1\n means repeating m\n-1 over n

A new angle bracket rule is needed for this.

<0\a...>=<bSbb\m-1...> where a and b are the first and second entries of the main array respectively

Sn when n>1 = <bSn-1b\m-1...>

S1=b

This rule works until we hit two backslashes

This can be changed to work for multiple backslashes

<0\1\1...1\m> = <b\b\b...\bSbb\m-1>

Sn when n>1 = <b\b\b...\bSn-1b\m-1...>

S1=b

Next, we introduce multiple levels of backslashes

{a,b[1\\2]2}= {a<b\b...b\b>b} with b b's

{a,b[1\\\2]2}= {a<R\\R...R\\R>b} with b r's where R= b\b...b\b with b b's

The [n]\ class of separators and corresponding angle bracket separators, <n>\ can represent ordinal level backslashes, where [1]\ represents backslash.

These separators behave just like regular separators.