When I see these long squiggles of line noise, I can't help thinking that
English might be a better alternative. Using Larry's terminology from a few
posts ago, we might think of:
 @a  \C[leach] + \C[reach] @b

Not mnemonic in a visual sense, but extendable to all sorts of trigraph
contexts. Indeed, if we had a "this is an operator" operator, we could give
every symbol a textual name:

  $a \op[assign] $b \op[plus] $c;
  @a = @b \op[leach plus reach] @c;

Dave.

"Luke Palmer" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Larry Wall writes:
> > On Thu, Jan 22, 2004 at 07:03:26PM -0700, Luke Palmer wrote:
> > : Larry Wall writes:
> > : > On the other hand, we've renamed all the
> > : > other bitwise operators, so maybe we should rename these too:
> > : >
> > : >     +< bitwise left shift
> > : >     +> bitwise right shift
> > :
> > : I could have sworn we already did that.  I thought they were:
> > :
> > :     +<<
> > :     +>>
> > :
> > : But I guess that's an extra unneeded character.
> >
> > Yeah, I kinda wondered if we'd done that already.  But hey, if I
> > don't remember what I already said, how can I get mad when other
> > people don't remember.  :-)
> >
> > For historical reasons it would be better to stick with the long
> > versions, even if that does engender the occasional 4-character
> > +<<= operator.  (Not to mention the 6-character ?+<<=? operator.
> > (Not to mention the 8-character >>+<<=<< operator.))  Though I guess
> > that would make >>+<< ambiguous again, sigh...
> >
> > Which probably means we have to force bitshifts to +< and +>, so
> > we can tell the difference between >>+< and >>+<< and >>+<<<.  It's
> > almost getting to the point where we want to allow disambiguating
> > underscores in operators: >>_+<_<<.  Alternately we give up on <<>>
> > as a qw// replacement and allow spaces: >> +< <<.
> >
> > But we also have the ambiguity with <<'' and friends, so maybe the real
> > problem is trying to make the << and >> workarounds look too much like
> > ? and ?.  Maybe they should be :<< and :>> or some such.  Maybe we
> > should be thinking about a more general trigraph (shudder) policy.
> > Or some other kind of "entity" policy.  Though I don't think people
> > would be terribly pleased when they see things like:
> >
> >     @a &raquo;+<<&laquo; @b
>
> All of these are getting pretty huge an unwieldy.  We do reward the
> people with UTF-8 terminals, but oh how we punish those without.
> Perhaps that's not the best way to go.
>
> What about >: and :< ?  This doesn't visually interfere quite as much,
> because we won't be seeing a distributed : or :: operator.  It's still
> not terribly pretty on things like >:+<<:<, but it's more managable than
> >>+<<<<, and not nearly as ambiguous :-)
>
> Luke
>
> > Particularly since the "r" one goes on the left, and the "l" on goes
> > on the right.  Still, it's potentially a lot less ambiguous, and puts
> > people into the "preprocessing" frame of mind, and would certainly
> > motivate people to move toward editors and terminals that can display:
> >
> >     @a ?+<<? @b
> >
> > And we wouldn't have to define yet another arbitrary list of mappings.
> > On the other hand, we'd probably have to require a () on the &foo()
> > notation to distinguish it from an &foo; entity.
> >
> > As a half-measure, we could allow << and >> for most purposes and
> > only require the entities when ambiguous.  That might be the best
> > approach.
> >
> > Larry


Reply via email to