<p dir="ltr">Again my 2 cents</p>
<p dir="ltr">Other languages use &quot;deffer&quot;, and have very simular semantics, there is no benifit gained from being different, and it makes peoples task of transfering from other systems easier. </p>
<p dir="ltr">The percieved &quot;simplicity&quot; of the alternative semanatics and naming is subjective. What is there works just fine and achives the result it was designed to do. Why do we need to change it? </p>
<div class="gmail_quote">On Jan 3, 2016 1:47 AM, &quot;Maury Markowitz via swift-evolution&quot; &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On Jan 2, 2016, at 11:48 AM, Sebastian Mecklenburg via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;<br>
&gt; I don’t think it’s confusing, I read ‘defer’ a ‘do it later’ and that’s just what it does. And the deferred calls are not always necessary so they can’t always be placed at the end.<br>
<br>
Can you be more specific about &quot;deferred calls are not always necessary&quot;? Do you mean that you could, for instance, place an if in front of the defer? If so one could do the same with always, of course. I&#39;ll use your example, slightly expanded, to illustrate<br>
<br>
&gt; func testDefer(x: Int) {<br>
&gt;    defer {print(&quot;deferred call1&quot;)}<br>
&gt;    if x &gt; 1 { defer {print(&quot;deferred call2&quot;)} }<br>
    print(&quot;non-deferred call&quot;)<br>
&gt; }<br>
<br>
I would rewrite this as:<br>
<br>
    func testAlways(x: Int) {<br>
        print(&quot;non-deferred call&quot;)<br>
        always {<br>
            print(&quot;deferred call1&quot;)<br>
            if x &gt; 1 print(&quot;deferred call2&quot;)<br>
        }<br>
    }<br>
<br>
Which is 100% equivalent to your example, but works precisely as you would expect without needing to &quot;be aware&quot; of any &quot;logical consequence&quot;s. The code runs exactly as it appears.<br>
<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>