[Swift-devel] Problem with iterate
    Ben Clifford 
    benc at hawaga.org.uk
       
    Sat Feb 20 15:09:15 CST 2010
    
    
  
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.
So I'm not convinced by that approach either.
-- 
http://www.hawaga.org.uk/ben/
    
    
More information about the Swift-devel
mailing list