On Sat, 22 Jul 2017 09:12:31 -0700, c...@zoffix.com wrote: > 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.
-1 from me as well, I agree with these first three points. > 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 -- Will "Coke" Coleda