====%%(wacko wrapper=text wrapper_align=center) Язык RL (I)%%==
((!/ОписаниеRL Описание языка RL))
=====%%(wacko wrapper=text wrapper_align=center)Часть 1. Введение. Обработка выражений и термов.%%==
**1.**
Опишите функцию, значение которой на выражении **//X//** равно **//Y//**, на выражении **//Y//** равно **//X//**, а на остальных выражениях равно пустому выражению.
**2.**
Опишите логические функции
a. **//not//**
a. **//and//**
a. **//or//**.
Их аргументами и значениями могут быть только **//TRUE//** или **//FALSE//**. (При недопустимых аргументах значение — НЕОПРЕДЕЛЕНО). Функция **//not//** имеет один аргумент, и её значение равно **//TRUE//** только если её аргумент равен **//FALSE//**. Функции **//and//** и **//or//** имеют по два аргумента, значение **//and//** равно **//TRUE//** только если оба аргумента равны **//TRUE//**, а значение **//or//** равно **//FALSE//** только если оба аргумента равны **//FALSE//**.
**3.**
Выразите функции **//LAST//** и **//BL//** через другие стандартные функции, т.е. не используя стандартных функций **//LAST//** и **//BL//**, опишите функции, значение которых равны:
a. последнему терму выражения-аргумента);
a. выражению-аргументу без последнего терма.
В задачах 4-5 аргументом является последовательность атомов
**4.**
Удалите
a. все атомы **//bad//**.
a. все заданные атомы.
**5.**
a. Каждое вхождения атома **//bad//** замените на атом **//good//**.
a. Каждое вхождения заданного атома замените на другой заданный атом.
**6.**
Измените порядок следования термов первого порядка на противоположный.
**7.**
a. Опишите функцию even, значение которой на выражениях с чётным числом термов равно **//TRUE//**, а на остальных — **//FALSE//**. а.
a. Опишите функцию, значение которой равно **//TRUE//** на выражениях, в которых число термов кратно 3, и равно **//FALSE//** на всех остальных выражениях.
**8.**
Остатки от деления целого числа на 3 могут быть равны 0, 1, 2. Опишите (в одной программе) три логические функции: **//mod_three_zero//**, **//mod_three_one//** , **//mod_three_two//**, каждая из которых имеет значение **//TRUE//** если и только если число термов в выражении даёт указанный остаток при делении на 3.
**9.**
Удалите из заданного выражения
a. все термы (хх).
a. все заданные термы.
**10.**
Удалите из заданного выражения все скобки.
**11.**
a. Каждое вхождения атома **//bad//** замените на атом **//good//**.
a. Каждое вхождения заданного атома замените на другой заданный атом.
**12.**
Измените порядок следования термов на противоположный, но рекурсивно по всем выражениям внутри термов.