[Swift-devel] Problem with iterate
    Mihael Hategan 
    hategan at mcs.anl.gov
       
    Sat Feb 20 15:52:58 CST 2010
    
    
  
On Sat, 2010-02-20 at 21:09 +0000, Ben Clifford wrote:
> oh the other thing i thought about more recently as that the parameter to 
> a map/iterate like thing doesn't have to be a literal lambda expression - 
> it can be the name of a function.
> 
> then you have some thing that says:
> 
> typeA a[];
> typeB b[];
> a = map foo b
> 
> (typeA o) foo(typeB i) { ... }
> 
> Now that happily exists alongside a more complicated literal lambda 
> expression syntax, and clearly separates the scope of the iteration body 
> away from the containing scope.
> 
> Although that latter is a bad thing as you then don't get to read eg. 
> parameter variables in the scope containing the map call. The haskell 
> answer to that is partial application
> 
> a = map (foo p1) b
> 
> (typeA o) foo(typeP parameter1, typeB i) { ... }
> 
> But then partial application looks kinda strange if you aren't used to it, 
> which is then a violation of the look-like-C principle.
And then ML would just have full static scoping, so whatever is visible
in the scope of foo's definition is visible in its invocation.
    
    
More information about the Swift-devel
mailing list