> On 15 Feb 2017, at 22:44, Nicolas Fezans via swift-evolution 
> <[email protected]> wrote:
> 
> > 3: maybe ~ is a better fit?
> 
> just for information this is in line with Matlab in which the following three 
> "not"-related syntax exist:
> a) ~ as a prefix operator for not
> b) not as a function
> c) ~= as an infix operator for "is not equal to"
> 
> I see pros and cons for each option and have a very slight preference for ~ 
> over !.
> 
> I would however avoid ¬ because I would not like to have a character that is 
> not directly accessible on most keyboards for something as simple as a not 
> operation, even if I like these maths notations very much.
> 
> If it would be decided to keep ! I could imagine that  adding syntax 
> coloration in code editors to make both uses of ! look a bit different would 
> help beginners and newcomers. This is more complicated to do than the typical 
> syntax coloration logic in text editors (syntax must be understood for doing 
> that), but this should not be a problem in Xcode.
> 
> If ~ would be preferred, I would recommend to continue accepting ! for one or 
> more versions of swift but with a warning recommending to change it (we do 
> not need to make a source breaking change when it is possible to continue 
> accepting it and to mark it as obsolete)

Tilde is already used in Swift for bit-flipping, though actually on a boolean 
type (if you treat it as 1-bit) bit-flipping and logical NOT are equivalent, 
and you can't use logical NOT an Ints at the moment anyway.
So tilde could be a good option, however the ~= operator also already exists in 
Swift for pattern matching, so couldn't be used as a replacement for !=, unless 
there's a better operator for pattern matching (personally I don't like using 
an operator for pattern matching at all but maybe that's just me).

>> On 15 Feb 2017, at 22:28, Derrick Ho via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> There is no need to change it
>> 
>> Since the context basically disambiguates the meaning of !
>> 
>> The next best thing is to compare it to false
>> 
>> (val == false) // same as !val
>> On Wed, Feb 15, 2017 at 3:02 PM David Waite via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> If someone came with a nice syntax I’d be for this. I can’t imagine what 
>> that would be.
>> 
>> I doubt there is an alternate prefix or postfix operator that would pass 
>> muster, due to ‘!’ already meaning the appropriate thing in so many 
>> languages, and swift only supporting symbolic operators.
>> 
>> I can’t think of a method on boolean which would read properly either, e.g.
>> 
>>      if isValid.not() {…}
>> 
>> The closest I could think to a decent bike shed color would be a global 
>> function:
>> 
>>      if not(isValid) {…}
>> 
>> -DW
>> 
>>> On Feb 15, 2017, at 11:10 AM, Robert Widmann via swift-evolution 
>>> <[email protected] <mailto:[email protected]>> wrote:
>>> 
>>> So you've identified the problem, but what do you propose as a solution 
>>> here?  
>>> 
>>> It should be noted that a (non-stdlib) language-level answer to this 
>>> question has already been discussed and rejected 
>>> (https://lists.swift.org/pipermail/swift-evolution/2015-December/000032.html
>>>  
>>> <https://lists.swift.org/pipermail/swift-evolution/2015-December/000032.html>).
>>> 
>>> ~Robert Widmann
>>> 
>>> 2017/02/15 9:02、Sadiq via swift-evolution <[email protected] 
>>> <mailto:[email protected]>> のメッセージ:
>>> 
>>>> Hello,
>>>> 
>>>> I would like to suggest to change Logical NOT Operator from ! to something 
>>>> else. 
>>>> It will increase the readability of the code and will avoid any confusion 
>>>> with the symbol used for force unwrapping of optional values. 
>>>> It would be easier for new programmers to learn Swift as the first 
>>>> language. 
>>>> I don't understand the rational behind using the same operator for two 
>>>> different purposes. 
>>>> 
>>>> Thanks and Regards,
>>>> Mohammad Sadiq
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> [email protected] <mailto:[email protected]>
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>> _______________________________________________
>>> swift-evolution mailing list
>>> [email protected] <mailto:[email protected]>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> 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

Reply via email to