parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

вот пожалста:

Sergey M. 13.03.2003 12:17

$distinct[^table.hash[resort][$.distinct(1)]]
тут мы создаём хэш из исходной таблицы, используя в качестве ключа поле resort, опция $.distinct(1) обеспечивает уникальность ключей, подробнее смотрите в документации по ^table.hash...
$tab_keys[^distinct._keys[]]
тут мы перегружаем ключи получившегося хеша в отдельную таблицу (подробнее см. в доке по ^hash._keys). Зачем? Хэш в силу своей специфики не имеет опций сортировки, а мне показалось что поле должно быть не только уникальным, но еще и отсортированным в алфавитном порядке. Если сортировка по алфавиту не обязательна, цикл можно было сделать с помощью нескольких ^таблица.select(...) внутри ^хеш.foreach, как советовал Миша...

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