# Birb will like this

Remember in the post about the fast and slow growing hierarchies, I talked about Bird’s Array Notation, or BAN? Today it’s that!

I was thinking of doing BEAF or Conway’s chained arrow notation, but this felt more reasonable.

If this is confusing, go check out this link to make it EVEN MORE confusing.

There are (I think) four types of arrays: Simple, Hyper-nested, Nested Hyper-nested, and 2-hyperseparator. Let’s start with the Simple Arrays.

Before we start on anything, # represents the part of the array that doesn’t change.

For linear and multidimensional arrays, there are five rules:

1. If an array has one or two “entries”, {a} = a, and {a, b} = ab ({a} is equivalent to {a, 1} because of the next rule)
2. If the last entry of an array is 1, the 1 can be removed: {#1} = {#}
3. If the second entry is 1, the result is the first value: {a, 1#} = a
4. If the third entry is 1, {a, b, 1, 1, … 1, 1, c#} = {a, a, a, a, … a, {a, b – 1, 1, 1, … 1, 1, c#}, c – 1#}
5. Otherwise, {a, b, c#} = {a, {a, b – 1, c#}, c – 1#}

`a<c>b’ is used in BAN, and it is equivalent to Bowers’ bc&a, and for multidimensional arrays, there are three rules:

1. If c = 0, we have `a<0>b = a’
2. If b = 1, we have `a<c>1 = a’
3. Otherwise, `a<c>b’ = `a<c – 1>b[c]a<c>(b – 1)’

So, the main rules become:

1. For an array with two entries, {a, b} = ab
2. If m < n, we have {#[m]1[n]#*} = {#[n]#*}, and {#[n]1} = {#}
3. If the second entry is 1, {a, 1#} = a
4. If m1 ≥ 2 and m1 ≥ … ≥ mx, we have: (HELLO Author here, and I can’t be bothered to write all of that, so it’s here.)
5. If m1 ≥ … ≥ mx ≥ 2, we have: (Author here again, make sure to check out the link!)
6. Rules 1 to 5 don’t apply. {a, b, c#} = {a, {a, b – 1, c#}, c – 1#}

I’ll talk about Hyper-nested arrays in the next post

I need to go outside

This site uses Akismet to reduce spam. Learn how your comment data is processed.