Расширенная нотация массива

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:К удалению Расширенная нотация массива (РНМ (на английском: BEAN[1])) - это многомерная версия нотации массива, созданная Джонатаном Бауэрсом.[2]

Правила

Для удобства эти правила будут перенесены в раздел "Основные правила" и "Правила построения массива".

Записи

  • Запятая указывает на разделитель (0).
  • (x) указывает, что остальная часть массива переходит в "x"-е измерение.
  • (n1)(n2)(nx) указывает произвольное количество разделителей, таких что n1n2n3nx1nx.
  • & означает оператор "массив".
  • # указывает на любую оставшуюся часть массива.

Основные правила

Правило M1. Условие: только 2 записи.

{a,b}=ab

Правило M2. Условие: 2-я запись равна 1.

{a,1#}=a

Правило M3. Условие: n<m.

{#(n)1(m)#}={#(m)#}

{#(n)1}={#}

Правило M4. Условие: партия разделителей перед записью, отличной от 1.

{a,b(n1)(n2)(nx)c#}={bn1&a(n1)bn2&a(n2)bnx&a(nx)c1#}

Правило M5. Условие: строка из 1 между партией разделителей и записью, отличной от 1.

{a,b(n1)(n2)(nx)1,,1,c#}={bn1&a(n1)bn2&a(n2)bm&a(m)a,,{a,b1(n1)(n2)(nx)1,,1,c#},c1#}

Правило M6. Строка из 1 в основной строке.

{a,b,1,,1,c#}={a,a,a,,{a,b1,1,,1,c#},c1#}

Правило M7. Правила M1-M6 не применяются.

{a,b,c#}={a,{a,b1,c#},c1#}

Правила построения массива

Правило A1. n=0.

b0&a=a

Правило A2. В противном случае.

bn&a={(b1)n&a(n1)bn1&a}

Примечания