> On 4 Oct 2017, at 11:42, Mike Kluev via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> on Tue, 3 Oct 2017 11:00:33 -0600 Dave DeLong <sw...@davedelong.com 
> <mailto:sw...@davedelong.com>>
>   wrote:
> 
> > Because, ideally, I’d love to be able to do:
> > 
> > infix operator and: LogicalConjunctionPrecedence // or whatever the 
> > precedence is called
> > func and(lhs: Bool, rhs: Bool) → Bool { return lhs && rhs }
> > 
> > let truthyValue = true and false
> 
> +1 (i like your thinking, even if it is unlikely to happen in swift)
> 
> (noteworthy, your example used "RIGHTWARDS ARROW" (U+2192) instead of ->, 
> whether on purpose or not.)
> 
> speaking of &&, was it just a copy-paste from C or is there a more 
> fundamental reason to use that instead of &? in C they had to use two 
> different operators because of the implicit int <-> bool promotions, but in 
> swift "true & false" vs "1 & 2" would have been distinguishable.

The difference between the & and && operators isn't to do with the implicit 
conversions; it's to do with whether both sides of the expression are evaluated 
or not.

false && system('rm -rf')

You really don't want to do that if both sides are executed ...

Alex

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to