FAQ
Author: lwall
Date: 2009-07-21 03:03:38 +0200 (Tue, 21 Jul 2009)
New Revision: 27635

Modified:
docs/Perl6/Spec/S03-operators.pod
Log:
[S03] rename 'nonchaining infix' to 'structural infix'


Modified: docs/Perl6/Spec/S03-operators.pod
===================================================================
--- docs/Perl6/Spec/S03-operators.pod 2009-07-20 23:56:21 UTC (rev 27634)
+++ docs/Perl6/Spec/S03-operators.pod 2009-07-21 01:03:38 UTC (rev 27635)
@@ -42,7 +42,7 @@
X Junctive and & also
X Junctive or | ^
L Named unary sleep abs sin temp let
- N Nonchaining infix but does <=> leg cmp .. ..^ ^.. ^..^
+ N Structural infix but does <=> leg cmp .. ..^ ^.. ^..^
C Chaining infix != == < <= > >= eq ne lt le gt ge ~~ === eqv !eqv
X Tight and &&
X Tight or || ^^ // min max

Search Discussions

  • Jon Lang at Jul 21, 2009 at 1:45 am

    On Mon, Jul 20, 2009 at 6:03 PM, wrote:
    Author: lwall
    Date: 2009-07-21 03:03:38 +0200 (Tue, 21 Jul 2009)
    New Revision: 27635

    Modified:
    docs/Perl6/Spec/S03-operators.pod
    Log:
    [S03] rename 'nonchaining infix' to 'structural infix'


    Modified: docs/Perl6/Spec/S03-operators.pod
    ===================================================================
    --- docs/Perl6/Spec/S03-operators.pod   2009-07-20 23:56:21 UTC (rev 27634)
    +++ docs/Perl6/Spec/S03-operators.pod   2009-07-21 01:03:38 UTC (rev 27635)
    @@ -42,7 +42,7 @@
    X  Junctive and      & also
    X  Junctive or       | ^
    L  Named unary       sleep abs sin temp let
    -    N  Nonchaining infix but does <=> leg cmp .. ..^ ^.. ^..^
    +    N  Structural infix  but does <=> leg cmp .. ..^ ^.. ^..^
    C  Chaining infix    != == < <= > >= eq ne lt le gt ge ~~ === eqv !eqv
    X  Tight and         &&
    X  Tight or          || ^^ // min max
    Hmm... maybe "Chaining infix" should become "Comparison"?

    --
    Jonathan "Dataweaver" Lang
  • Darren Duncan at Jul 21, 2009 at 2:15 am

    Jon Lang wrote:
    On Mon, Jul 20, 2009 at 6:03 PM, wrote:
    Modified: docs/Perl6/Spec/S03-operators.pod
    ===================================================================
    --- docs/Perl6/Spec/S03-operators.pod 2009-07-20 23:56:21 UTC (rev 27634)
    +++ docs/Perl6/Spec/S03-operators.pod 2009-07-21 01:03:38 UTC (rev 27635)
    @@ -42,7 +42,7 @@
    X Junctive and & also
    X Junctive or | ^
    L Named unary sleep abs sin temp let
    - N Nonchaining infix but does <=> leg cmp .. ..^ ^.. ^..^
    + N Structural infix but does <=> leg cmp .. ..^ ^.. ^..^
    C Chaining infix != == < <= > >= eq ne lt le gt ge ~~ === eqv !eqv
    X Tight and &&
    X Tight or || ^^ // min max
    Hmm... maybe "Chaining infix" should become "Comparison"?
    I second that notion,

    ... assuming that the category would not later be expanded with other operators
    that don't fit the Comparison description.

    And please don't even consider instead using the term "Relational" in reference
    to these operators, that some people do. The "Comparison" term is more
    descriptive, and it doesn't conflict with other meanings of "relational" that
    relational databases deal with.

    -- Darren Duncan
  • Jon Lang at Jul 21, 2009 at 2:33 am

    On Mon, Jul 20, 2009 at 7:15 PM, Darren Duncanwrote:
    Jon Lang wrote:
    On Mon, Jul 20, 2009 at 6:03 PM, wrote:

    Modified: docs/Perl6/Spec/S03-operators.pod
    ===================================================================
    --- docs/Perl6/Spec/S03-operators.pod   2009-07-20 23:56:21 UTC (rev
    27634)
    +++ docs/Perl6/Spec/S03-operators.pod   2009-07-21 01:03:38 UTC (rev
    27635)
    @@ -42,7 +42,7 @@
    X  Junctive and      & also
    X  Junctive or       | ^
    L  Named unary       sleep abs sin temp let
    -    N  Nonchaining infix but does <=> leg cmp .. ..^ ^.. ^..^
    +    N  Structural infix  but does <=> leg cmp .. ..^ ^.. ^..^
    C  Chaining infix    != == < <= > >= eq ne lt le gt ge ~~ === eqv !eqv
    X  Tight and         &&
    X  Tight or          || ^^ // min max
    Hmm... maybe "Chaining infix" should become "Comparison"?
    I second that notion,

    ... assuming that the category would not later be expanded with other
    operators that don't fit the Comparison description.
    "Tight or" includes min and max; I see nothing wrong with the
    "Comparison" precedence level eventually picking up a handful of
    operators that aren't comparators, as long as so many of them are.
    And especially if the question being asked when creating a new
    operator is "should this have the same precedence as the comparison
    operators?"

    A stronger argument against it would be to find comparison operators
    that exist at other precedence levels. I don't think that there are
    any. (Well, besides <=>, leg, and cmp.)

    Indeed, I'll be surprised if there are any other precedence levels
    that are chaining - which is another key point: what kind of operator
    would be chaining, but _not_ some sort of comparison?
    And please don't even consider instead using the term "Relational" in
    reference to these operators, that some people do.  The "Comparison" term is
    more descriptive, and it doesn't conflict with other meanings of
    "relational" that relational databases deal with.
    Seconded. :)

    --
    Jonathan "Dataweaver" Lang
  • Larry Wall at Jul 21, 2009 at 3:09 am
    On Mon, Jul 20, 2009 at 07:33:23PM -0700, Jon Lang wrote:
    : A stronger argument against it would be to find comparison operators
    : that exist at other precedence levels. I don't think that there are
    : any. (Well, besides <=>, leg, and cmp.)

    I think people would find it quite odd if an operator named "cmp" can't
    be considered a comparison operator.

    : Indeed, I'll be surprised if there are any other precedence levels
    : that are chaining - which is another key point: what kind of operator
    : would be chaining, but _not_ some sort of comparison?

    Congratulations, with that argument you've completely persuaded me that
    "Chaining" is the most precise description of that precedence level,
    and we should leave it just the way it is now.

    The reason I renamed "Nonchaining" is not that I dislike the concept
    of chaining, but that all the *other* non-chaining precedence levels
    are also, er, non-chaining. :)

    Though the proximate cause was that it made for a stupid error message,
    which indicated that the old name wasn't sufficiently accurate:

    Can't reduce a nonchaining operator because it's diffy and not chaining

    It now reads:

    Can't reduce cmp because structural infix operators are diffy and not chaining

    In short, "chaining" is a good concept, but "non-chaining" is bad
    (and doubly bad when it means two different things).

    Larry

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl6-language @
categoriesperl
postedJul 21, '09 at 1:03a
activeJul 21, '09 at 3:09a
posts5
users4
websiteperl6.org

People

Translate

site design / logo © 2021 Grokbase