Просмотр кода страницы RL 3 страница

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