Не, VAR-параметры это моветон. Тем более для индексов.
С каких это пор?
С тех пор как я ознакомился с хаскелем
Точно не помню, но примерно в то время пришло осознание, что результат должен возвращаться как результат, а не в виде изменяемых аргументов.
А до этого была просто неудовлетворенность существующим синтаксисом C++ (причем в ББ/обероне точно такая же проблема) - в точке вызова не видно, что аргументы передаются по ссылке и будут изменены.
INC() тоже моветон?
Да. ++ намного лучше
В крайнем случае i += 1
P.S. NEW - тоже дурной. Запись p := NEW смотрится намного естественнее.
P.S.S. Не говоря о том, что не сильно оптимизирующий компилятор породит ужасный код для инкремента индексов из твоего примера.