> -- Илья Ермаков писал(а):
> Нет, это к тому, что понятия индекса и матрицы там естественные. А какое-нить понятие коллекции/набора - ни-пришей-ни-пристебай.

Хорошо, пусть будет индексРассмотрим конкретно вот эту строку:
## Код:
```
WHILE (i < c0.outCount) & ~ ( (c0.outs[i].x = i1) & (c0.outs[i].y = j1) ) DO
```

Вот мои "претензии":
1) Почему граница индекса задается одной сущностью (c0), а индексируется другая (c0.outs)? В смылсе я понимаю, что такого не всегда можно избежать, но только руки сразу чешутся - влепить туда ASSERT(c0.outCount == c0.outs.size()).
2) c0.outs[i] я бы хотел видеть в отдельной локальной переменной с говорящим названием. Глядишь и условие стало бы не таким "мясным" и ошибиться в нем было бы труднее.
3) Таки for по индексу + проверка условия внутри нагляднее вот такого трехэтажного условия. Это как раз тот случай, когда Дейкстру можно принести в жертву практике. Во всяком случае при существующем синтаксисе языка.

> -- Илья Ермаков писал(а):
> Из названий переменных фигурируют итераторы и парные типа c0, c1, которые подчёркивают вот эту парность-сопряжённость. Что такое с0, с1 - решается подъёмом глаз к VAR и взгляду на тип,

Вот именно это меня в VAR и бесит - подъем глазРазрыв с контекстом. Вообще я уже все сказал, что думаю по поводу этой вредной секции в соответствующей теме, не буду повторяться