Paul, does the proposed operator short-circuit like ternary does (i.e. is only the active case evaluated)?
– Steve > On Dec 19, 2015, at 11:42 AM, Paul Ossenbruggen via swift-evolution > <swift-evolution@swift.org> wrote: > > Thanks, great feedback! > > Good point about the floats, that is definitely a hole in my proposal! I will > update it with that. > > To the list form being confusing, I would definitely like to know if others > agree that having the two forms is confusing. The list form would be zero > based. I would definitely drop it from the proposal if it would lead to it > being declined but I think it is nice because it is concise and serves a > valuable purpose of choosing among many choices without having to write out > each case. > > The alternate form, in alternatives considered, a variant of Vestor > Godfied’s suggestion, is: > > if (x==y : true, false) > switch (control : .North:”N”, .South:”S”, .East:”E”, .West:”W”, default:” “) > select (control : “A”, “B”, “C”, default:”D”) > > may be preferred if others agree that it is confusing to have the list form > and the case form together. Since Swift leaves parenthesis available around > if and switch statements, the parenthesis colon sequence could be used to > distinguish the statement and expression form. One thing I really don’t like > about it is, that Swift finally solved the problem people running the space > up against the parenthesis, something that had bothered me for some time, > this would make the practice ingrained if(control : true, false) would become > the norm. I suppose in this case it would make sense though. > > Or if making it even more explicit we could combine the forms. > > if? (x==y : true, false) > switch? (control : .North:”N”, .South:”S”, .East:”E”, .West:”W”, default:” “) > select? (control : “A”, “B”, “C”, default:”D”) > > I expect that that may be more controversial though. As it then steps into > the optionals area. > > With both these options we lose some conciseness. So I still prefer the form > in the proposal. > > - Paul > >> On Dec 19, 2015, at 2:43 AM, Conrad Kutsch via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> Hey, I really like the new proposal, gets a +1from me! Especially the case >> part makes it good to use. I would just leave out the Integer part because >> it can be confusing and misleading. Do you start counting at 1? Or at 0? >> MinInt? It’s just super error-prone if you don’t write the number before it. >> >> ?(charNum : 0: "A", 1: "B”, ... >> might be OK as it would get rid of the many case statements but then again, >> is this only working for Int or also for float? >> >> >> >>> On 19 Dec 2015, at 01:56, Paul Ossenbruggen via swift-evolution >>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>> >>> Thanks for your support! >>> >>> I think parenthesis are preferred because braces are for bracketing lists >>> of statements. Statements may or may not return values. >>> >>> Having the conditional on the inside of the parens helps to show the >>> begging of the demux operator rather than a floating conditional which is a >>> common complaint with the ternary operator. >>> >>>> On Dec 18, 2015, at 3:46 PM, Charles Constant <char...@charlesism.com >>>> <mailto:char...@charlesism.com>> wrote: >>>> >>>> +1 >>>> >>>> I'd be very happy with your new proposal too. I still prefer sticking the >>>> value we're using as a key outside of the parens, but it's a minor >>>> quibble. Also I can't figure out if parens or curly braces are more >>>> appropriate. Does it make more sense for the expression to look like a >>>> tuple or a closure? I'm not sure. >>>> >>>> Anyhow, I'm good with your new proposal. >>>> >>> >>> _______________________________________________ >>> swift-evolution mailing list >>> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>> https://lists.swift.org/mailman/listinfo/swift-evolution >>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution> > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org <mailto:swift-evolution@swift.org> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution