The Rexx | and & operators are explicitly defined to always evaluate both
sides of the expression (e.g., no short circuiting of evaluation allowed).
A trailing "+" or "-" would not work because both of those can be a prefix
operator, so that operator can't be parsed unambiguouisly. These would
both work as "-&" and "-|". I sort of like using "-" to indicate it is
doing something less...
Rick
On Wed, Sep 24, 2014 at 11:29 AM, Chip Davis <[email protected]> wrote:
> For Classic Rexx compatibility, perhaps:
>
> & = eval-both AND
> &- = short-circuit AND
> | = eval-both OR
> |- = short-circuit OR
> && = eval-both XOR
>
> OTOH, if the ooRexx '&' and '|' operators are already defined to
> short-circuit, how about:
>
> & = short-circuit AND
> &+ = eval-both AND
> | = short-circuit OR
> |+ = eval-both OR
> && = eval-both &&
>
> ?
>
> -Chip-
>
> On 9/24/2014 10:17 AM, Rick McGuire wrote:
> > I've started coding this up, and the "," syntax for list creation
> > looks very doable. The meaning of the "," depends on the context, as
> > already noted, but the contexts are absolutely unambiguous so it is
> > always possible to assign the correct meaning.
> >
> > However, I want to circle back around to the discussion of the
> > short-circuited AND. We can't eliminate the usage on IF/WHEN, etc.,
> > but on the other hand, there are certainly contexts where an and
> > operator that uses short-circuit logic might be useful. One could
> > argue that an OR version could also be useful. I don't believe this
> > is possible for XOR, since the result always depends on both values.
> > Are there any operator combinations that would make sense? Doubling
> > up obviously doesn't work because && and || are already operators.
> >
> > Rick
> >
> > On Sat, Sep 20, 2014 at 10:41 AM, Mike Cowlishaw <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> > __
> >
> > __
> > On further reflection, the conditional expression cannot
> > be merged with a simple redefinition. The conditional
> > expressions have the "shortcut" feature where not all of
> > the expressions need to be evaluated. The conditionals
> > will still need to be a special case because of that.
> >
> > Also on further reflection .. perhaps the
> > conditional case could drop the shortcut
> > feature. In other words: all the expressions
> > are evaluated, and if any of them are true
> > then the THEN/WHEN path is taken.
> >
> > No, we can't do that. The whole point of that feature
> > was to allow for the shortcut to happen! This allows
> > for tests like
> >
> > if a~isa(.String), a~length > 0 then
> >
> > to work. This instruction would give an error if all
> > of the expressions are evaluated because the second
> > test is only value if the first test is true. Making
> > that change would break every single program I've
> > written that uses that construct since I only use that
> > sort of conditional because of the shortcut behaviour.
> >
> > Understood ... shortcut mechanism is good. What I'm
> > suggesting is that my choice of using commas to
> > indicate that behavior could perhaps be improved upon,
> > especially given the recent discussion.
> > Or, more generally ... some way to apply shortcuts in
> > all expressions, not just in the IF/WHEN special case.
> > I don't think ooRexx needs to follow NetRexx in this
> > .. hindsight has value.
> >
> >
> > ooRexx has already followed NetRexx in this and even gone a
> > little beyond in adding this also to while and until loop
> > conditions. I don't see how shortcutting would have any
> > meaning in the other places where we'd wish to generate lists
> > of items. All of the expressions really need to be evaluated
> > in those situations to generate the array. The list usage in
> > conditionals really is quite a different construct. In
> > addition to the shortcut evaluation, they also do not allow
> > omitted expressions, which work just fine in the other
> > contexts (e.g., argument lists).
> >
> > I don't really see much value into trying to force-fit these
> > together. It's not really necessary to have everything work out.
> > I guess I wasn't explicit enough. I was thinking that using
> > commas for the 'short cut' case was short sighted, and maybe a
> > different syntax for that would be better. So the comma
> > notation would always be 'evaluate them all' and something
> > different would be 'this is a sequence of logical tests
> > that can be short-circuited'. (Consider & vs. && in C.)
> > Commas might indeed be the best, here, but worth exploring
> > alternatives, briefly at least?
> > Mike
> >
> >
> >
>
> ------------------------------------------------------------------------------
> > Slashdot TV. Video for Nerds. Stuff that Matters.
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
> > _______________________________________________
> > Oorexx-devel mailing list
> > [email protected]
> > <mailto:[email protected]>
> > https://lists.sourceforge.net/lists/listinfo/oorexx-devel
> >
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> >
> >
> >
> > _______________________________________________
> > Oorexx-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/oorexx-devel
> >
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> Oorexx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel