[swift-evolution] Proposal: optionally define nested functions elsewhere

Amir Michail amichail at gmail.com
Sun Feb 7 08:59:43 CST 2016


> On Feb 7, 2016, at 9:57 AM, Craig Cruden <ccruden at novafore.com> wrote:
> 
> Is there a language that implements it this way?  
> 
> I actually don’t much like it, most of my functions are fairly small and I actually like it the way it is.
> 
> If you are using an IDE or editor it is easy to collapse the function if it is not what you want to focus on.  
> 

Another problem with nested functions is that the indentation keeps increasing thus leaving less room for the code. This proposal also avoids that problem.

> 
>> On 2016-02-07, at 21:32:19, Amir Michail via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> The problem with nested functions is that they can make the function containing them very long and hard to read.
>> 
>> So the idea is to separate the body of a nested function from where it is declared.
>> 
>> For example:
>> 
>> func f() {
>> var x:Int
>> func g(y:String) {
>>   print(“x=\(x), y=\(y)")
>> }  
>> ...
>> }
>> 
>> could be refactored as:
>> 
>> func f() {
>> var x:Int
>> func g(y:String) // function body elsewhere to avoid clutter in f
>> ...
>> }
>> 
>> func f().g(y:String) {
>>   print(“x=\(x), y=\(y)")
>> }  
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 



More information about the swift-evolution mailing list