You're right. I've often wondered whether a method call really *must* evaluate all its arguments upfront. What about lazy evaluation? Only evaluate an argument when it is actually required, i. e. accessed for the first time?
On Fri, Sep 4, 2020 at 3:17 PM Rick McGuire <object.r...@gmail.com> wrote: > Hmmm, I found an awkward bit with this proposal. For the operators, these > are all transformed into method calls under the cover, so "a | b" gets > executed as "a~'|'(b)", where the object on the left hand side does the > evaluation of the condition. This allows any class to override the '|' and > '&'. With the overrides, the evaluation needs to be handled directly by the > operator code because there's no way to delay evaluation of a method > argument, and it would be very difficult to allow something like that to > exist. I'm not sure I'm comfortable with '*|' and '*&' be special cases as > operators. > > Rick > > On Fri, Sep 4, 2020 at 9:03 AM Rick McGuire <object.r...@gmail.com> wrote: > >> There's been a bit of a discussion about the short-cutting conditional >> lists implemented by IF, WHEN, et al. I find that construct very useful, >> but as the discussion on the list has revealed, it has its limitations. >> >> It would actually be fairly trivial to implement AND and OR operators >> that can do short-cut evaluation. Of course, this is not possible for XOR, >> which always requires both values. The real questions are 1) should it be >> done and 2) what should the operator be. I've been tentatively using *& and >> *| in my thinking about this, but there are certainly other possibilities. >> >> Rick >> > _______________________________________________ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel >
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel