зык 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.