' E=+E+е oE+I++ I+EEе+.


Subject: ' E=+E+е oE+I++ I+EEе+.
From: Anton Yu. Orlov (orlov@mccme.ru)
Date: Thu Dec 14 2000 - 02:21:40 MSK


                Здравствуйте, Аркадий и Сергей!

        Недавно в одном из своих писем, сравнивая дизайны Р+ и Р6, Аркадий
написал:

> В Р+ равенство означает откат на уровень функции (с точки зрения
> заборов и отсечений оно равносильно запятой, перед которой стоит
> достаточное количество отсечений).

        В связи с этим у меня есть несколько вопросов к Сергею.
        
        1) Я правильно понимаю, что это не совсем верное утверждение, и
равенство означает откат не на уровень функции, а на уровень первого (в порядке
изнутри наружу) блока, результат которого не будет результатом предложения?
Например, результатом вычисления конструкции
        {
                { = $fail; }, A;
                B;
        };
будет B.

        2) Это не противоречит утверждению о заборах и отсечениях и является,
конечно, вопросом дизайна, но, на мой взгляд, очень сильно его (дизайн)
усложняет. Для того, чтобы понять, где же мы окажемся в результате неуспеха
после '=', нам надо найти <<наименьший блок, результат вычисления которого, не
является результатом вычисления объемлющей его конструкции>>. Казалось бы,
более человекоориентированным (и не менее выразительным) было бы считать, что
неуспехи после равенства действительно перехватываются только на уровне функции
(ну, и на уровне наименьшего "отрицаемого" блока). Не могли бы Вы объяснить,
почему сделано так как сделано, а не так, как могло бы быть сделано ;-)? Тем
более, что такой дизайн придется поддерживать и в последующих версиях Рефала+.

                Большое спасибо!

                                        С уважением,
                                                        Антон.



This archive was generated by hypermail 2b25 : Thu Dec 14 2000 - 02:16:49 MSK