Красиво избежать побочных эффектов
От: Roman Odaisky Украина  
Дата: 22.06.12 15:05
Оценка:
Задание: последовательно обработать объекты, каждый из которых принадлежит определенному юзеру, но своих обработать только первые столько-то (потому что сам юзер мог задействовать undo). В C-подобном синтаксисе получается элементарно:
int cOwnSeen = 0;
for(item : items)
{
    if(item.owner != myself || cOwnSeen++ < limit)
    {
        processItem(item);
    }
}

Но известно, что побочные эффекты — зло. Если потребуется заменить условие на чуть более сложное, есть опасность наделать ошибок. Как выглядит эквивалентный, но идеологически правильный код на вашем любимом языке?
До последнего не верил в пирамиду Лебедева.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.