====%%(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.** Измените порядок следования термов на противоположный, но рекурсивно по всем выражениям внутри термов.