2009-08-24 15 views
2

Ich portiere etwas Code Ich Prototype in Python über Flash und während Actionscript nicht ganz so schlecht saugen wie ich erwartet habe (ich höre v3 ist viel besser als v2!) Es gibt immer noch einige Sachen, die ich tun muss scheint das übermäßig prosaisch/boilerplate zB Summieren einer Liste ...Bietet Actionscript3 List Comprehensions oder Lambda-Kalkül?

var a:int = 0; 

for each (var value:int in annual_saving) 

    { 

     a = a + value; 

    } 

return a/100; 

als ...

return reduce(lambda x,y: (x+y), self.annual_saving)/100 

zu gegenüber, dass für mich ein bisschen zu sehr wie Java fühlt (eww Java: kotze XO ###)

Ich bin einfach unwissend über die coole Array-Summing-Funktion von as3? Oder versteht es das Lambda-Kalkül, oder listet es Verständnis auf? oder eine andere so prägnante Schreibweise geben? Habe ich recht, wenn ich ahnte, dass es einen eleganteren Weg gibt, dies zu tun, oder bin ich für den Rest dieses Projekts im 20. Jahrhundert fest?

Prost :)

Roger.

Antwort

5

Actionscript ist JS sehr ähnlich. Man könnte es leicht selbst implementieren, wenn Sie hatte:

var annual_saving = [50, 100, 50, 100]; 
function reduce (f, arr) { 
    var a = arr[0]; 
    for (var i = 1; i < arr.length; i++) { 
     a = f(a,arr[i]); 
    } 
    return a; 
} 
var res = reduce(function (x,y) { return x+y }, annual_saving); 

Sie leicht diese erweitern könnte ... die Syntax sein wird, etwas weniger attraktiv, aber immer noch sehr prägnant.

2

Es listet nicht die Vollständigkeit auf, sondern unterstützt anonyme Funktionen und Schließungen. Sie haben auch map und filter in der Array-Klasse.

Verwandte Themen