Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Haskell - Обработка программ

51K
01 декабря 2009 года
dace_saris
5 / / 07.11.2009
Очередная проблема с хаскелем.

Рассматривается простой императивный язык программирования для вычислений в целых числах, содержащий следующие конструкции: выражения, состоящие из целых констант, переменных целого типа и операций; присваивание; последовательное выполнение операторов (присваивания). Абстрактный синтаксис этого языка выражен описанием следующих типов данных:

data Expression = Constant Integer |
Variable String |
Unary Char Expression |
Binary Expression Char Expression

data Operator = Assignment Expression Expression |
-- в левой части присваивания может быть только переменная
Sequence [Operator]

Программа - это значение типа Operator.

Написать следующую функцию для обработки программ:

invert :: Operator -> Operator
Переставляет в заданной программе все присваивания таким образом, чтобы они шли в обратном порядке. Для вывода результата работы можно использовать стандартное представление программы (deriving Show) или написать свою собственную функцию для более "симпатичного" представления программы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог