[swift-evolution] ternary operator ?: suggestion

Marc Knaup marc at knaup.koeln
Sun Dec 13 10:12:01 CST 2015


I would start it independently and put a note somewhere that in case
if/switch/do become expressions on their own then your proposal will
automatically turn into a simplified syntax for them.

On Sun, Dec 13, 2015 at 5:05 PM, J. Cheyo Jimenez via swift-evolution <
swift-evolution at swift.org> wrote:

> This is great. Here is my take on it.
>
> Should these be two proposals? One for the if-then-else expression and one
> for the switch expression?
> I think the proposal would have a better chance if it is focused first on
> replacing ?: with if-then-else. It is a very emotional change for a lot of
> people. At the end of the proposal you could just briefly mention the
> switch expression possibility (I like Al's suggestions.)
>
> If the if then else expression gets approved and implemented then it would
> be easier to get a switch expression using the then keyword imo but I do
> think we need to include it in the proposal but as a future implementation
> and/or possibility.
>
>
>
>
>
>
>
> On Saturday, December 12, 2015, Paul Ossenbruggen via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> Hello All,
>>
>> Been sick in bed all day, but decided to try to be productive…
>>
>> I did a rough draft of a proposal for implementing if expressions and
>> switch expressions based upon the discussions we had here. I have tried to
>> keep the scope of the changes as small as possible,  only added one keyword
>> and kept things as similar to the existing language constructs as possible.
>> If anyone wants to help me with this, or has feedback, please let me know,
>>
>> https://github.com/possen/swift-evolution/blob/master/0020.md
>>
>> Thanks,
>> - Paul
>>
>>
>>
>> On Dec 12, 2015, at 3:51 PM, Paul Ossenbruggen <possen at gmail.com> wrote:
>>
>> Implied in using the  “then", if…then…else would aways require “else"
>> when using “then” similar to how “guard" requires “else”. This  will help
>> to make the difference between statements and expressions clear.
>>
>> let x = If cond then X else Y
>>
>> is the full form, where “else" can not be omitted.
>>
>> On Dec 12, 2015, at 12:59 PM, Paul Ossenbruggen <possen at gmail.com> wrote:
>>
>>
>>
>> On Dec 12, 2015, at 12:37 PM, Andrey Tarantsov via swift-evolution <
>> swift-evolution at swift.org> wrote:
>>
>> 1. I would really hate to explain to someone when *if* needs a *then*
>> and when it doesn't. That's the sort of inconsistency that shouldn't be
>> added lightly.
>>
>>
>> agreed definitely want to be careful with that. I think with braces
>> meaning statements that differentiation can be made clear. I would
>> certainly start with statements when describing, just as you usually don’t
>> talk about the ternary operator until later.
>>
>> 3. If we can somehow solve all of this, I think I'll be +1 for replacing
>> (A ? B : C) with some sort of (*if* A *then* B *else* C).
>>
>>
>> Yes that would be great.
>>
>>
>> 4. Generally, I wonder how hard would it be for all statements to be
>> usable as expressions? Why didn't Swift go that way from the start?
>>
>>
>> The biggest problem statement is you don’t need to exhaustively specify
>> every outcome:
>>
>> if cond {
>> print(“hello”)
>> }
>>
>> whereas in an expression you have to specify what happens in the else.
>>
>> let say = if cond then “hello” else “goodbye"
>>
>> unless you go seriously off the deep end:
>>
>> let say = if cond then “hello”
>>
>>  “say" then becomes an optional, *shudder*
>>
>>
>>
>>
>>
> _______________________________________________
> 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/20151213/0d4d8af1/attachment.html>


More information about the swift-evolution mailing list