1.6.3. ЛОГИЧЕСКИЕ СВЯЗКИ

В некоторых случаях приходится вычислять сложные логические условия. При этом удобно выражать сложные условия через более простые с помощью логических связок "и", "или" и "не". Хотя Рефал Плюс и не содержит логических связок в явном виде, они легко изображаются с помощью имеющихся в нем конструкций.

 

*** Логическое "И"

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

Если оба условия заданы тропами: Q' и Q", достаточно вычислить тропу

\{ Q';}, Q"

Если первое условие задано источником S, второе - тропой Q, достаточно вычислить тропу S, Q.

И наконец, если оба условия заданы результатными выражениями Re' и Re", достаточно вычислить результатное выражение

Re' Re".

 

*** Логическое "ИЛИ"

Пусть у нас имеются два условия и требуется проверить, что хотя бы одно из них выполнено.

Если оба условия заданы тропами: Q' и Q", достаточно вычислить тропу

\{ Q'; Q"; }

 

*** Логическое "НЕ"

Пусть у нас имеется условие, заданное тропой Q, и требуется проверить, что оно не выполнено. Этого можно достичь, вычислив тропу

# \{Q;}

которая является сокращенной записью для тропы # \{Q;}, .

Если же условие задано источником S, достаточно вычислить тропу

# S

которая является сокращенной записью для тропы # S , .

И в том, и в другом случае мы пользуемся возможностью опускать хвосты, состоящие из одной запятой.