Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
andylars 05.10.2015 11:07 / 05.10.2015 13:08
Понятное дело, что мои хотелки не имеют корреляции с целями разработчиков Парсера.# # Класс hash # 1. Возможность сквозного автосоздания хеша (возможно включаемая в конфиге опция) $hsh.a.b.c[value] если $hsh не задан, и соответственно не заданы вложенные хеши a.b. - то конструкцией выше автоматически создаются хеши hsh.a.b при первом упоминании если хеши hsh.a.b уже есть, то они: a) не перетираются, как было бы в случае $hsh[$.a[$.b[$.c[10]]]] b) конструкция поддается динамическим манипуляциям без process # Причина Это очень часто пригождается, и в итоге каждый раз превращается в рекурсивный ад с итеративной проверкой на сущ.хеша и его пред-созданием. 2. Глубокое копирование hash как разновидность конструктора $hash_copy[^hash::deep_copy[$hash_orig]] Да, реализация есть на самом парсере, но крутить эти циклы на каждый чих, лучше бы парсер это умел нативно. Алгоритм работы такой, чтобы копировал только "статические" ветки/ключи, во избежание зацикленности и неоднозначности. # Причина При создании приложения хочется генерить вложенные конфиги, структуры (меню, конфигурации, да много чего). И соответственно для их реализации хорошо подходят хеши, но при вложенности более 1 уровня, манипулцяии начинают превращаться в головную боль. Особенно, если проводить операция со множествами для многовложенной структуры. 3. Операции вставки! ^hash_orig._insert[key;value;offset/key;after/before] После того, как порядок ключей в хеше стал иметь значение, то хорошо бы иметь вставку в определенное место, а не пересоздавать хеш перебирая и сортируя ключи. Определенным местом может быть ключ с опцией after/before, может быть и индекс. 4. Функции стека/очереди ^hash_orig._push/_pop и т.п. Вставка с вершины стека/очереди, а не в конец, как по-умолчанию. Соответственно, и в функции foreach - добавить обратный порядок перебора, чтобы можно было снимать значения с конца или начала. # Причина Реализация - событий, очередей - очень нужная штука 5. Инвертирование порядка ключей хеша. ^hash_orig._keys_inverse[] # Причина Очевидна.В последнее время таблицами почти не пользуюсь...