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