[swift-evolution] ternary operator ?: suggestion
Paul Ossenbruggen
possen at gmail.com
Sat Jan 9 19:25:02 CST 2016
By the way my example should be read the question mark as, transform or map,
let num = color ?
.Red to 100 :
.Green to 200 :
.Blue to 300 :
default to -1
let num = color map
.Red to 100 :
.Green to 200 :
.Blue to 300 :
default to -1
> On Jan 9, 2016, at 5:16 PM, Paul Ossenbruggen <possen at gmail.com> wrote:
>
>
>
>
>> On Jan 9, 2016, at 4:09 PM, Charles Constant <charles at charlesism.com <mailto:charles at charlesism.com>> wrote:
>>
>> More fiddling... any takers for "on"?
>>
>> Yes, this is partly a last ditch attempt trying to revive my earlier proposal :) It still irks me that we'd have a switch using the colon two different ways. Also my last suggestion had the order reversed ( i.e.: "val =test" but then "==test val" in the cases ) which is irritating.
>>
>> let str = boo ?
>> "yes" on true :
>> "no" on false
>>
>> let num = color ?
>> 100 on .Red :
>> 200 on .Green :
>> 300 on .Blue :
>> -1 on default
>>
>
> This does have some nice properties, like more compact than “case", don’t need the word “case" out front and a separator. Having the order the other way though I think would not work. You would need t support long expressions etc, so I don’t think having it reversed would be popular. Perhaps something like this
>
> let num = color ?
> .Red to 100 :
> .Green to 200 :
> .Blue to 300 :
> default to -1
>
> I like some of it but, I still want to put the colons in-between the case labels. This syntax would be seen as too different from something we already have with the “case label: expression” syntax. Maybe seen as “different but not better"
>
> Meanwhile I have been learning Scala. The unary function, partial functions, and pattern matching stuff looks cool.
>
> - Paul
>
>>
>> The more verbose forms will be easier to learn, I suppose, but it's also nice, when you have a long list of things like this, to keep things as json-y as possible. Granted if we use the short version, there's developers who will flame anyone listening for doubling down on the evil ternary.
>>
>>
>>
>>
>>
>>
>> On Fri, Jan 8, 2016 at 11:18 AM, Chris Lattner <clattner at apple.com <mailto:clattner at apple.com>> wrote:
>> On Jan 7, 2016, at 12:10 AM, Paul Ossenbruggen <possen at gmail.com <mailto:possen at gmail.com>> wrote:
>> > Just a few hopefully quick questions:
>> >
>> > Do you have any thoughts on supporting two forms? Like the compact form where case and default are not present, and the more formal switch like form?
>>
>> Adding two forms seems very unlikely to be accepted - even adding one form is unclear :-)
>>
>> > Do you have any specific reasons to not support “where”? Is it just to keep it simple and when we need more complexity use the statement form?
>>
>> I don’t have a strong objection to where, other than trying to keep things simple. It is reasonable to argue that removing “where” makes things more complex by making the expression *different* from the statement though.
>>
>> -Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160109/7b68b141/attachment.html>
More information about the swift-evolution
mailing list