Предлагает ли Actionscript3 понимание списка или лямбда-исчисление? - PullRequest
2 голосов
/ 24 августа 2009

Я портирую некоторый код, который я прототипировал на python, на флэш-память, и хотя ActionScript не такой плохой, как я ожидал (я слышал, что v3 намного лучше, чем v2!), У меня все еще есть некоторые вещи делать это кажется слишком прозаичным / шаблонным, например, подведение списка ...

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 (например, Java: puke! X-O ###)

Я просто не знаю, какая классная функция суммирования массива в as3? Или он понимает лямбда-исчисление, или список понимания? или предоставить какое-то другое такое краткое обозначение? Правильно ли я подозреваю, что есть более элегантный способ сделать это, или я застрял в 20-м веке на оставшуюся часть этого проекта!?

Приветствия:)

Роджер.

Ответы [ 2 ]

5 голосов
/ 24 августа 2009

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 голосов
/ 24 августа 2009

Он не работает со списком, но поддерживает анонимные функции и замыкания. У вас также есть карта и фильтр в классе Array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...