2009-08-24 21 views
2

我將一些我在python中原型化的代碼移植到flash中,而actionscript並沒有像我期望的那麼糟糕(我聽說v3比v2好多了),還有一些我不得不這是否看起來過於平淡/樣板例如總結列表...Actionscript3是否提供列表解析或lambda演算?

var a:int = 0; 

for each (var value:int in annual_saving) 

    { 

     a = a + value; 

    } 

return a/100; 

,而不是...

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

,感覺有點太像Java,我(EWW的Java:!吐XO ###)

我是不是不知道as3的酷陣列求和功能?或者它理解lambda微積分,還是列表解析?或者提供其他一些簡潔的符號?我是否懷疑有這樣一種更優雅的方式呢,還是我堅持在20世紀爲這個項目的其餘部分做準備!?

Cheers :)

Roger。

回答

5

Actionscript與JS非常相似。你可以很容易地實現它自己,如果你有到:

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); 

您可以輕鬆地擴展這個...語法將有點不太吸引人,但還是很簡潔。

2

它不做列表解析,但支持匿名函數和閉包。 Array類中還有mapfilter