[swift-evolution] Location of ! in Boolean negation expressions
James Andrews
james at enigmanorth.com
Mon Aug 8 10:56:25 CDT 2016
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-
> evolution at swift.org>:
>> 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
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160808/6ecef757/attachment.html>
More information about the swift-evolution
mailing list