> -- Рэйлвэй Каген писал(а):
> Возможно, после Вас кто-нибудь, дотачивая код, случайно махнёт местами операнды в строке res := (pg.base.bmh # NIL) OR pg.Load^ ();?  Математически - ничего такого, а результатНикак не пойму, как это можнослучайновзять и отредактировать выражение? (махнуть местами операнды).> -- Александр Ильин писал(а):
> Это значение устанавливается в первой строке процедуры, и оно же является результатом функции Load.Возможно стоитделающуюпроцедуру сделать именно процедурой.
## Код:
```
PROCEDURE (pg: Page) Load* (VAR res: BOOLEAN);
BEGIN
   res := pg.base.bmh # NIL; IF ~res THEN pg.Load^ (res) END;
   IF res & (pg.base.bmh = NIL) THEN
      AllocNew (pg);
   END; (* if *)
END Load;
```
Вроде не ошибся.. хотя, как я понимаю это дело, смущает такой момент:
## Код:
```
res := pg.base.bmh # NIL; IF ~res THEN pg.Load^ (res) END;
   (* res = загружено *)
   IF res & (pg.base.bmh = NIL) THEN  (* если загружено и (не загружено) то...*)
      AllocNew (pg);
   END; (* if *)
```
