import { LinkTopic } from '../../components/link-topic'; import { HelpTopic } from '../../models/help-topic'; export function HelpRSLangExpressionStructure() { return (
Структурные выражения в языке родов структур используются для преобразований, меняющий{' '}
ℬ(X1) — множество всех подмножеств X1.
X1×X2 — множество всех пар элементов из X1 и{' '}
X2.
(a, b, c) — упорядоченная n-ка (n ≥ 2).
{'{a, b, c}'} — неупорядоченная n-ка (n ≥ 1).
bool(a) = {`{a}`} — множество, состоящее из одного
элемента.
red(S1) — объединение элементов всех множеств в S1. Операция
применима только к множествам, состоящим из множеств.
debool({`{a}`}) = a — извлечение единственного элемента
из множества. Операция применима только к множествам с одним элементом.
pr1((a1, …, an)) = a1.
Pr1(S1) — множество первых компонентов всех кортежей из S1.
Индексы у операций над кортежами для упрощения отображаются равными 1, но их можно заменить на другие натуральные числа или их последовательность, разделенная запятой.
Вместо одного индекса можно использовать мультииндекс — последовательность натуральных чисел через запятую. В этом случае проекция или фильтр возвращает сразу несколько позиций кортежа.
pr1,3((a1, a2, a3, a4)) = (a1, a3)
Pr2,4(S1) — множество пар, составленных из второй и четвёртой компонент кортежей из{' '}
S1.
Fi1[D1](S1) — подмножество S1, в котором для каждого элемента первая
проекция принадлежит D1.
Fi1,2[D1](S1) отличается от фильтра с мультииндексом{' '}
Fi1,2[Pr1(D1), Pr2(D2)](S1) тем, что в первом случае проверяется принадлежность парам из D1, а во
втором — полному декартову произведению проекций D1
{`ℬ(2) = {{}, {1}, {2}, {1, 2}}`}
(1,2,3) — кортеж из трёх чисел
pr2((5, 4, 3, 2, 1)) = 4
Pr3({`{(1, 2, 3),(4, 5, 6)}`}) = {`{3, 6}`}
red({`{{1, 2, 3},{3, 4}}`}) = {`{1, 2, 3, 4}`}
bool(1) = {`{1}`}, debool({`{1}`}) = 1
{`Fi2[{2, 4}]({((1, 2), (3, 4), (5, 6))}) = {((1, 2), (3, 4))}`}