On Sat, 22 Jul 2017 07:53:26 -0700, alex.jakime...@gmail.com wrote:
> This should work:
> 
> Code:
> say (:?foo);
> 
> Result:
> ===SORRY!=== Error while compiling -e
> Bogus statement
> at -e:1
> ------> say (:⏏?foo);
>     expecting any of:
>         colon pair
> 
> 
> Because these work:
> 
> Code:
> say (:foo);
> say (:!foo);
> 
> Result:
> foo => True
> foo => False


-1 from me:

1) Colonpairs are ubiquitous in the language, so there's large possibility of 
introducing some unwanted ambiguity somewhere and it's hard to predict where it 
might occur
2) Colonpairs are already one of the most complex syntax feature of the 
language, requiring beginners to learn a wealth of syntax to understand most of 
the common code.
3) Given (1) and (2), I'd expect any changes to extend their syntax to carry 
large benefits, however, the proposal offers literally zero practical use and 
the OP came up[^1] with this idea while trying to think of more cases to add to 
the catalog of colon uses in Rakudo. The `?` prefix op at least coerces the 
already-true arg to Bool (e.g. `?"foo" === True`) but in the case of the 
colonpair, there's nothing to coerce, so there's absolutely no point in typing 
the extra `?` and it's unlikely anyone would want to type it.
4) The OP makes the case that this syntax should exist solely for the sake of 
consistency, by interpreting the `!` in `:!foo` syntax to mean the `!` op, and 
there exists the `?` op. But if we follow that logic, it'd mean:
    *) `!! ??` should be allowed too, to mean reverse ternary
    *) `::!CLASS` should mean `anything but ::?CLASS`
    *) `has $?foo` should be an alternative to `has $!foo`
    *) `self?foo` should be an alternative to `self!foo`
    *) `:-42foo` should parse just as `:42foo` parses
The point being that the current syntax is `":"` vs `":!"` not `":"` vs `":" + 
some op`. And things that have "!" in them do not necessarily need to have a 
"?" alternative.

In summation, there's no practical use of this feature and it is unlikely it'll 
ever be used in real programs. The colonpair syntax is used across the entire 
language and any changes to it have large impact. It's very hard to anticipate 
any problematic ambiguity cases introduction of `?` into colon syntax might 
have. And given lack of technical benefits of this feature, I do not think we 
should accept the risks.


[1] https://irclog.perlgeek.de/perl6/2017-07-22#i_14907647

Reply via email to