Based on the tally of the opinions, I'm rejecting this ticket: AlexDaniel: +1 Zoffix: -1 Jonathan Scott Duff: -1 Coke: -1
> Sorry for being think but what is say (:?foo); meant to do? The OP just says > it should "work". I think that's pretty good evidence the extra syntax doesn't offer any additional clarity. > If “?” asks a question, then what about “!” "!" ubiquitously means "not" in programming. If ":foo" is True, ":!foo" is "not True" > And then we also have ?? !!, where again we have ? as kinda an opposite of !. There `??` asks the question and the `!!` segment is the "not" portion of the answer. > This raises a question: well… should we implement these too? > [...] For example, it will allow %h<x>:?exists > [...] make it possible to use ? in other places > [...] It seems that it will also affect character classes That may have been a question 3 years ago, but I think after the stable language release it's a bit too late to make sweeping proposals that alter the entire syntax landscape. You yourself aren't even sure of all the bits that will be affected, much less of what unwanted interactions this new syntax will introduce. All design changes—especially ones this large—carry risk with them of designing yourself into a corner. Usually, there's pay off for the risk taken. However, this proposal offers none. Not only does it offer no extra functionality, it's not even a beneficial (more concise, easier to remember, etc.) alternative to existing syntax. The only pro argument is consistency, but based on the previous replies, it appears there's quite a lot of disagreement even on that. > The effort required to implement the feature is much less than having > discussions *like this* Discussions like this is how we avoid making a mistake we'll have to pay for for the next decade or longer. It's not the first time you complain about discussions taking longer than implementation and I wish for once you'd realize that implementation time is insignificant; it's the support of the feature for the next decade that matters.