Школа179: Oner Xaum/RL1
 

Язык RL (I)


Описание языка RL

Часть 1. Введение. Обработка выражений и термов.



1.
Опишите функцию, значение которой на выражении X равно Y, на выражении Y равно X, а на остальных выражениях равно пустому выражению.


2.
Опишите логические функции
  1. not
  2. and
  3. or.
Их аргументами и значениями могут быть только TRUE или FALSE. (При недопустимых аргументах значение — НЕОПРЕДЕЛЕНО). Функция not имеет один аргумент, и её значение равно TRUE только если её аргумент равен FALSE. Функции and и or имеют по два аргумента, значение and равно TRUE только если оба аргумента равны TRUE, а значение or равно FALSE только если оба аргумента равны FALSE.


3.
Выразите функции LAST и BL через другие стандартные функции, т.е. не используя стандартных функций LAST и BL, опишите функции, значение которых равны:
  1. последнему терму выражения-аргумента);
  2. выражению-аргументу без последнего терма.

В задачах 4–5 аргументом является последовательность атомов


4.
Удалите
  1. все атомы bad.
  2. все заданные атомы.


5.
  1. Каждое вхождения атома bad замените на атом good.
  2. Каждое вхождения заданного атома замените на другой заданный атом.


6.
Измените порядок следования термов первого порядка на противоположный.


7.
  1. Опишите функцию even, значение которой на выражениях с чётным числом термов равно TRUE, а на остальных — FALSE. а.
  2. Опишите функцию, значение которой равно TRUE на выражениях, в которых число термов кратно 3, и равно FALSE на всех остальных выражениях.


8.
Остатки от деления целого числа на 3 могут быть равны 0, 1, 2. Опишите (в одной программе) три логические функции: mod_three_zero, mod_three_one, mod_three_two, каждая из которых имеет значение TRUE если и только если число термов в выражении даёт указанный остаток при делении на 3.


9.
Удалите из заданного выражения
  1. все термы (хх).
  2. все заданные термы.


10.
Удалите из заданного выражения все скобки.


11.
  1. Каждое вхождения атома bad замените на атом good.
  2. Каждое вхождения заданного атома замените на другой заданный атом.


12.
Измените порядок следования термов на противоположный, но рекурсивно по всем выражениям внутри термов.