Школа179: Oner Xaum/RL3
 
зык RL.

Часть 3. Разные задачи. Интерпретатор.

1. Путь робота в лабиринте записан в виде выражения из букв E W N S (восток, запад, север, юг). Удалить из этого пути лишние шаги (т.е. участки E W, W E, N S, S N)

2. Путь робота на плоскости без стенок записан в виде выражения. Определить, возвращается ли робот в конце пути в исходное положение.

3. Описать функцию, преобразующую выражение (A B) (C D) (E F) в (A C E) (B D F) и действующую аналогично для всех выражений, являющихся последовательностями термов, каждый из которых есть заключенная в скобки последовательность атомов, причем количества атомов во всех термах равны («переход от записи по столбцам к записи по строкам»).

4. Удалить в последовательности символов повторения (результат содержит те же символы, но по одному разу).

5. Переставить символы в последовательности так, чтобы одинаковые символы стояли рядом.

6. а) По двум последовательностям символов построить их пересечение, то есть

последовательность, содержащую их общие символы. (Каждая из 

последовательностей не содержит повторений, и результат тоже не

должен содержать повторений.)

б) Дана последовательность различных символов; получить последовательность

термов, содержащую все перестановки данных символов (каждая перестановка –

один терм).

Интерпретатором языка RL называется программа, которая получает в качестве исходных данных текст некоторой RL-программы и значения всех параметров её главной функции, а выдаёт значение главной функции для этих значений параметров. Интерпретатор языка RL сам может быть написан на языке RL. Здесь предлагается реализовать его некоторые элементы.

7. Вычислите значение значимого RL-терма, в который могут входить стандартные имена:

a) ABORT, QUOTE
b) те же и FIRST, BF, LAST, BL
c) те же и expr
d) те же, IF и EQUAL.
e) все кроме CALL.