Грамматика ложбана/18.15
Векторы и матрицы
cmavo | selma'o | значение |
---|---|---|
jo'i | JOhI | начало вектора |
te'u | TEhU | конец вектора |
pi'a | VUhU | матричный объеденитель строк |
sa'i | VUhU | матричный объеденитель столбцов |
Математический вектор – это список чисел, а математическая матрица – это таблица чисел. Ложбан считает, что матрицы строятся из векторов, которые, в свою очередь, строятся из операндов.
jo'i, единственный cmavo в selma'o JOhI, является векторным показателем: он имеет синтаксис, напоминающий префиксный оператор, но обладает очень высоким приоритетом. Компоненты должны быть простыми операндами, а не полными выражениями (если они не заключены в скобки). Вектор может иметь любое количество компонентов; te'u – опускаемый терминатор. Пример:
18.107) li jo'i paboi reboi te'u su'i jo'i ciboi voboi du li jo'i voboi xaboi Число массив( один, два ) плюс массив( три, четыри )равно числу массив( четыри, шесть) (1,2) + (3,4) = (4,6)
Векторы можно объединить в матрицы с помощью оператора строк матрицы pi'a или оператора столбцов матрицы sa'i. Первый объединяет векторы, представляющие строки матрицы, а второй – векторы, представляющие столбцы матрицы. Оба оператора допускают любое количество аргументов: дополнительные аргументы добавляются с помощью нулевого оператора ge'a.
Таким образом, матрица «магического квадрата»
8 | 1 | 6 |
3 | 5 | 7 |
4 | 9 | 2 |
можно представить либо как:
18.108) jo'i biboi paboi xa pi'a jo'i ciboi muboi ze ge'a jo'i voboi soboi re вектор (8 1 6) матричная-строка вектор (3 5 7) , вектор (4 9 2)
или как
18.109) jo'i biboi ciboi vo sa'i jo'i paboi muboi so ge'a jo'i xaboi zeboi re вектор (8 3 4) матричная-колонка вектор (1 5 9) , вектор (6 7 2)
Регулярные операторы mekso могут применяться как к векторам, так и к матрицам, поскольку грамматически и те, и другие являются выражениями. Обычно матрицы необходимо заключать в круглые скобки при использовании операторов, чтобы избежать неправильной группировки. Операторов VUhU для матричных операторов внутреннего или внешнего произведения не существует, но соответствующие операторы могут быть созданы с помощью подходящего символьного слова или строки lerfu, перед которым ставится ma'o.
Матрицы с более чем двумя измерениями могут быть построены с помощью pi'a или sa'i с соответствующим подстрочным индексом, обозначающим измерение. При использовании нижних индексов нет разницы между pi'a и sa'i. Метки могут быть любыми, которые поддерживает xi, например pa или mlatu bu.