[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

TCL list substitution



Victor Wagner wrote:
> On 2008.10.01 at 23:11:12 +0400, Alexey Pechnikov wrote:
>> В сообщении от Wednesday 01 October 2008 19:27:28 Victor Wagner
>> написал(а):
>> > Там надо соблюдать три (ну в 8.5 четыре) математически строгих правила.
>> 
>> А что в 8.5 нужно дополнительно учесть? А то я еще не смотрел его...
> 
> Появившуюся возможность подстановки списков. В смысле подставить
> n-элементный список в команду не как один параметр, а как n,
> БЕЗ лишнего уровня evaluation для всего остального.

Вот это было нужно делать с самого начала, уже при разработке языка.

В тикле ведь та же самая проблема, что обсуждалась выше (для шелла). Из-за
того, что eval и подобные делают concat своим аргументам перед парсингом. В
результате простые примеры прокатывабт и так, а что-то посложнее и
понадёжнее - приходится в [list ...] заворачивать.

Нужно было или сразу запретить простые конструкции, провоцирующие ошибки,
чтобы eval работал только с одним аргументом-списком, ругаясь на остальные,
или же рассматривал все аргументы как готовый списаок (тут нужен list
substitution).

Кстати, одна из базовы синтаксических конструкций лишняя. Variable
substitution. Можно было бы для большей однородности использовать синтаксис
command substitution, считая переменные командами, возвращающими своё
значение (как в Forth-е для констант).


Reply to: