<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>I'd be in favor of a solution like the '..' operator. Using a block-based syntax for this seems like it's already close enough to defining something like<br></div>
<div>&nbsp;</div>
<div>func with&lt;T&gt;(x: T, @noescape _ f: inout T -&gt; Void) -&gt; T {<br></div>
<div>&nbsp; &nbsp; var value = x<br></div>
<div>&nbsp; &nbsp; f(&amp;value)<br></div>
<div>&nbsp; &nbsp; return value<br></div>
<div>}<br></div>
<div>&nbsp;</div>
<div>that it would be better to just go with the function instead of complicating the Swift syntax. But the '..' operator has some nice properties, such as being able to say something like<br></div>
<div>&nbsp;</div>
<div>someLayoutConstraint = label.leftAnchor.constraintEqualToAnchor(view.leftAnchor)..active = true<br></div>
<div>&nbsp;</div>
<div>(I'm assuming here that '..' works by returning the receiver as the value of the subsequent expression, rather than merely allowing several '..' operators to be chained together, but I'm not actually familiar with how this works in Smalltalk and Dart)<br></div>
<div>&nbsp;</div>
<div>-Kevin Ballard</div>
<div>&nbsp;</div>
<div>On Fri, Dec 4, 2015, at 01:27 PM, Joe Groff wrote:<br></div>
<blockquote type="cite"><div>In Smalltalk and Dart, you can do this with method cascades, which apply multiple methods to the same 'self'. In Dart they use '..' for this:<br></div>
<div>&nbsp;</div>
<div>let task = NSTask()<br></div>
<div>&nbsp; ..launchPath = "..."<br></div>
<div>&nbsp; ..arguments = [...]<br></div>
<div>&nbsp; ..standardOutput = pipe<br></div>
<div>&nbsp;</div>
<div>The nice thing about that is that it's a bit more generally applicable than just initialization.<br></div>
<div>&nbsp;</div>
<div>-Joe<br></div>
<div>&nbsp;</div>
<div> <img style="height:1px !important;width:1px !important;border-top-width:0px !important;border-right-width:0px !important;border-bottom-width:0px !important;border-left-width:0px !important;margin-top:0px !important;margin-bottom:0px !important;margin-right:0px !important;margin-left:0px !important;padding-top:0px !important;padding-bottom:0px !important;padding-right:0px !important;padding-left:0px !important;" border="0" height="1" width="1" alt="" src="https://www.fastmailusercontent.com/proxy/57364a414c03fe7f909822b91e2ebf911bd6ed8b76dfe39c4d0209808feac788/8647470737a3f2f25723030323431303e23647e23756e64676279646e2e65647f27766f2f60756e6f35707e6d3148765176786c673171614a7d2236454230345272776e415175593056405b473948554561665759515f49363a6a4555647976707f6f4a7a4b4352783549323676396b6147347839487d223641313849516d645778674151527473665a683a7d40367c67526d48627a535469434c69573646673d2232445a6963705d6169665f656f42385d22364a633a435c4b6051553a7d645346554850784833325943683665776a596a7a43796e4d48755873635468635d223646747057674b4564426338437e61496b697356497541417738694261605866463231797e6a61714b4556476d23344d23344/open"><br></div>
<div><u>_______________________________________________</u><br></div>
<div>swift-evolution mailing list<br></div>
<div><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br></div>
<div><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></div>
</blockquote><div>&nbsp;</div>
</body>
</html>