There is a precedent for such an operator (see
https://en.wikipedia.org/wiki/Material_conditional
<(https://en.wikipedia.org/wiki/Material_conditional> and
https://en.wikipedia.org/wiki/Truth_table#Logical_implication) and I
personally don't oppose it out of hand, despite it being slightly confusing
for me having not dealt with/studied such an operator previously.
So working this out for my own benefit, and using the Venn diagram
<https://en.wikipedia.org/wiki/Material_conditional#/media/File:Venn1011.svg>
in the first Wikipedia link above to represent the condition being
represented, red being the 'true' case and white being 'false', the example:
if (itIsRaining => iAmUsingUmbrella) {
println 'I am dry'
} else {
println 'I am wet'
}
could be written using more traditional operators as:
if (!itIsRaining  iAmUsingUmbrella) {
println 'I am dry'
} else {
println 'I am wet'
}
Using the truth table for implication (see 2nd link above):
*Implication*
*itIsRaining (p)**iAmUsingUmbrella (q)**p* → *q*
T T T
T F F
F T T
F F T
and the wiki validates that *"p → q is equivalent to ¬p ∨ q." *So really,
it is simply another way to represent a conditional relationship.
I vote include it for those situations where this operator makes more
sense. Those who don't need/like it can continue using more traditional
operators.
My $0.02. ;)
Jeff
On Fri, Jan 27, 2017 at 1:57 PM, Paolo Di Tommaso <paolo.ditommaso@gmail.com
> wrote:
> I agree on this. It could be very useful for custom DSL.
>
>
> Cheers, Paolo
>
> On Fri, Jan 27, 2017 at 9:27 PM, Krzysztof Kowalczyk <
> kowalczyk.krzysztof@gmail.com> wrote:
>
>> 1
>>
>> but I would like to have some extra operators for AST transformation that
>> are reserved, have priority and does not have assigned logic, for instance
>> =>, >, @@, ^^, <, := etc
>>
>> On 27 January 2017 at 08:18, Graeme Rocher <graeme.rocher@gmail.com>
>> wrote:
>>
>>> 1 from me, not immediately obvious what it does and seems like it
>>> would just confuse users for little syntactic gain.
>>>
>>> On Thu, Jan 26, 2017 at 5:27 PM, Daniel Sun <realbluesun@hotmail.com>
>>> wrote:
>>> > Hi all,
>>> >
>>> > The new parser(Parrot) supports "implies" operator(=>) now, e.g.
>>> >
>>> > // if and only if isDistributedTxFailed is true and isCompensated is
>>> false,
>>> > yields notConsistent.
>>> > if (isDistributedTxFailed => isCompensated) {
>>> > println 'eventuallyConsistent '
>>> > } else {
>>> > println 'notConsistent'
>>> > }
>>> >
>>> > // One more example:
>>> > if (itIsRaining => iAmUsingUmbrella) {
>>> > println 'I am dry'
>>> > } else {
>>> > println 'I am wet'
>>> > }
>>> >
>>> > *More examples can be found at:*
>>> > 1)
>>> > https://github.com/danielsun1106/groovyparser/blob/impliesO
>>> perator/src/test/resources/core/ImpliesOp_01x.groovy
>>> > 2)
>>> > https://github.com/danielsun1106/groovyparser/blob/impliesO
>>> perator/src/test/resources/core/ImpliesOp_02x.groovy
>>> > 3)
>>> > https://github.com/danielsun1106/groovyparser/blob/impliesO
>>> perator/src/test/resources/core/ImpliesOp_03x.groovy
>>> >
>>> > *Background of the "implies" operator(=>) :*
>>> > http://mathworld.wolfram.com/Implies.html
>>> > *Please let us know whether you like it, vote here:
>>> > *https://twitter.com/daniel_sun/status/824552059395465218
>>> >
>>> > Cheers,
>>> > Daniel.Sun
>>> >
>>> >
>>> >
>>> > 
>>> > View this message in context: http://groovy.329449.n5.nabble
>>> .com/VOTEAbouttheimpliesoperatorforGroovy3tp5738129.html
>>> > Sent from the Groovy Users mailing list archive at Nabble.com.
>>>
>>>
>>>
>>> 
>>> Graeme Rocher
>>>
>>
>>
>
