Каннибал мен миссионерлер


* Move * == s.New-State



бет4/10
Дата07.02.2022
өлшемі38,44 Kb.
#84826
түріПрограмма
1   2   3   4   5   6   7   8   9   10
Байланысты:
Каннибал мен миссионерлер

* Move
* == s.New-State
Move { sM eS = >; }
Функция Try будет трансформировать состояние. Если перемещение невозможно в данном состояниия, то новое, фиктивное, состояние будет представляться символом ImpossAdmiss будет проверять, что результирующее состояние удовлетворяет необходимым требованиям. Если это так, функция оставит состояние неизменным. Если же требования не удовлетворяются, она заменит состояние на Imposs . Вот как выглядит простое и прямолинейное определение Try, которое использует средства сопоставления с образцом языка РЕФАЛ и изобилует комментариями:
* Try a move
Try {
* Boat on left bank
* MM crossing
1 L('MM'e1)(e2) = R(e1)('MM'e2);
* CC crossing
2 L(e1'CC')(e2) = R(e1)(e2'CC');
* MC crossing
3 L(e1'MC'e2)(e3) = R(e1 e2)('M'e3'C');
* M crossing


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет