Sure, I readily admitted myself that it's quite see to see an operator be used like that, at least explicitly. As Lantua states, that's precisely what happens when you call array.reduce(0, +)
, it's just that the access of the operator +
happens in one area, and the calling of it (with ()
and 2 arguments) is tucked behind the implementation of reduce()
.
This thread is kind of unpleasant.
This was proposed in the past, and rejected for good reasons (at least IMO, but you can feel free to disagree). You were cited some of the many discussion on this topic, and it's clear that you haven't caught up on all that was already said, so this is just a pointless rehashing of existing conversations.
Further, you assert statements like "well this isn't possible" (implication, swift bad), get shown that it is possible, and respond with "well that was obscure" (implication, swift still bad). Not my fault you haven't taken the time to more intimately familiarize yourself with the operator feature of the language 
And what gets me the most is that because you're not sufficiently informed on this topic, your proposals have consequences you don't understand. That's fine, but in response you double down and say "well some of you will have to die, but that's a sacrifice I'm willing to make".
No thanks. Don't mess with my code highlighting, please. At least acknowledge the trade off, that it exists, and that others (who might have different values/expectations of the programming language) can reasonably disagree that the trade-off is worth making.
And for what it's worth, I am interested in more features to support better DSLs. But it's a really hard set of things to do, particularly in a statically typed language. If everything is untyped, unchecked method calls, then Ruby's demonstrates it's possible to make really rich embedded DSLs. But Swift is operating under a lot more constraints in order to preserve rich type checking, definite initialization, etc. which makes it significantly harder. As Lantua pointed out, you desired syntax would require much more than just changes to the identifier/operator character partitioning. Stuff I'd be open to potentially, but at least learn enough to appreciate the complexity of the things you're non-nonchalantly proposing.