Hi, The .! syntax is a bit gross I think. The problem is that programmers are very familiar with the NOT <something> semantics. So while changing it might be pleasing from a natural language perspective, it will seem strange from the programmer perspective. I guess you cant win!
I like the suggestion of adding a negative form of the method. However syntax changes are not going to happen for a while now I believe. Thanks, James On Sat, Aug 6, 2016, at 07:32 PM, Anton Zhilin via swift-evolution wrote: > 2016-08-06 10:37 GMT+03:00 Darren Mo via swift-evolution <swift- > [email protected]>: >> Consider code like >> >> guard !parameters.contains(where: { !validValueRange.contains($0) }) >> else … >> >> Oftentimes I need to write negation expressions like this. The >> location of the exclamation marks really bugs me when writing and >> reading this code. The natural English ordering would be >> something like >> >> “Make sure parameters does not contain an element such that >> validValueRange does not contain this element.” >> >> But the programming-language-imposed ordering is >> >> “Make sure NOT parameters contains an element such that NOT >> validValueRange contains this element.” > > One solution to this problem would be to add negative method versions > wherever possible. For example: 'all', 'any', 'some', 'none' methods > instead of just 'contains(where:)'. > Plus, we could add 'unless' alongside 'guard'. But these features were > postponed to Stage 2. > _________________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
