Обсуждение дальше + Disclaimer: в вопросе именований, названия методов, опций и подачи - я полностью полагаюсь на "парсерную мафию" :)
andylars 04.06.2016 13:04
/ 04.06.2016 13:15
Disclaimer:
Обозначу, что именно в вопросе именований и "подачи" - я вообще целиком и полностью полагаюсь на "парсерную мафию", объявившуюся в треде :)
Предложенные названия и способ подачи аргументов/опций, просто для умозрительного восприятия. Я обсуждаю только модель и функции - за названия не держусь от слова - "совсем".Парсерный хеш - реально "заряженный" уже сейчас, и добавление двух механик просто докрутит ему бойкости "из коробки", которая в его модели/природе уже существует, а примеры на Питоне (выше по треду для Misha v.3) - доказывают, что "страхи смешения ключа и индекса" - надуманы.
Продолжим формализацию дальше:В контексте этой ветки формализации, будем опираться на факт, что раскройка первой скомканой формализации - на принципиальные два "полушария"-механик по работе с элементами хеша:
A) изменение хеша "поверх" - (overlaying)
B) вставка в хеш "между" - (insertion)
- выглядит удачно, т.к. вытрясает практически весь логический "мусор" и "неявное" поведение, при любом другом ракурсе, без превраительной раскройки по этой оси. Но это только 1 шаг в формализации, и совсем не обязательно два метода, надо детализировать дальше.
Отсекая от камня по методу "прогрессивного джипега" :) и в контексте этой раскройки отдельно, крутим дальше:
Механика "overlaying"Имеем сл.принципиальный момент: что мы хотим с позиции строгости?
- строгий инструмент "изменение" = только сущ.элементы хеша.
- мягкий инструмент "наплыв" = изменение/добавление если элемент не существует.
Строгий, очевидно, напрашивается на а-ля
replace с +/-(объектная адресация до ключа перед методом) типа ^hash.key.replace[newkey;newvalue]
Мягкий = один в один повторяет механику питоновского
update для OrderedDict, то есть изменяет элемент или добавляет если такого нет (это ровно то же самое, что и ранний
put с overwrite)
update - семантически подразумевает, как "обновление" сущ.ключа, так и обновление самого "хеша" (через появления новых ключей), и может доиграть строгий
replace, путем какой-то опции (а-ля strict/overwrite).
Опять же, в парсеровской реальности предложеный replace - умеет заменять не только элемент, но и попутно можно поменять только ключ или значение, не испортив подачу.
Поэтому, пока кажется, что
replace (с возвратом true/false) явно нужнее.
- Есть ли какой-то ловкий способ изменить имя ключа в hash, с сохранием его места (по индексу)., andylars 28.05.2016 12:28
- и всё, что-ли? даже в top3 самых больших тредов не добрались! %-) (-), Misha v.3 [M] 16.06.2016 10:15
- Ответ, moko [M] 16.06.2016 14:28
- Огласите top :) (-), andylars 16.06.2016 11:24
- Ответ, Misha v.3 [M] 16.06.2016 14:29 / 16.06.2016 14:30
- Ответ, moko [M] 30.05.2016 00:59
- Всмысле это предложение или уже недокументированная возможность в ночных сборках?, andylars 30.05.2016 11:04 / 30.05.2016 11:05
- Ответ, moko [M] 30.05.2016 12:38
- Методы для работы с порядком элементов в хеше..., Sumo [M] 06.06.2016 11:05 / 06.06.2016 11:06
- Ответ, G_Z [M] 06.06.2016 15:13
- Ответ, moko [M] 06.06.2016 13:48
- Можно вообще не делать новый метод вставки. а расширить add..., Sumo [M] 06.06.2016 14:03
- Ответ, Sumo [M] 06.06.2016 14:00
- Ответ, moko [M] 06.06.2016 14:29
- Ответ, moko [M] 06.06.2016 14:23
- Если «нестандартный вариант» кажется проблемой, то можно и иначе..., Sumo [M] 06.06.2016 15:09
- Ответ, moko [M] 06.06.2016 22:10
- От add - ожидаешь, что он сохранит физ.смысл = сложение/слияние ключей. Картинки прилагаются., andylars 07.06.2016 00:28 / 07.06.2016 00:50
- put это эффективный add одного элемента, moko [M] 07.06.2016 00:43
- Я однозначно не понимаю, как вы сочетаете add и before/after, andylars 07.06.2016 01:00
- Если перестать думать про ключи и значения, то все встает на вои места..., Sumo [M] 07.06.2016 06:29
- Я таки осознал, что надо наоборот - перестать думать об add, как overlapping-методе для множества, тем более, что он выбивается из стройного ряда. (-), andylars 08.06.2016 09:50
- Поэтому, дополнить операции со множествами - операциями с рядами, можно только органически подобными по механике, иначе imho каша., andylars 07.06.2016 10:33 / 07.06.2016 10:51
- Именно так я и воспринимал. Словарь - это множество. А массив - это ряд. И операции для них работают по-разному., andylars 07.06.2016 10:03
- Ответ, G_Z [M] 07.06.2016 02:01
- Ответ, G_Z [M] 06.06.2016 23:14
- Страшновато глазами пользователя... http://www.parser.ru/forum/?id=83206, andylars 06.06.2016 16:18 / 07.06.2016 00:37
- Мне так OK, moko [M] 06.06.2016 15:21
- Вопрос семантики: begin/end будут точнее first/last, но само поведение какое-то нелинейное получается. (-), andylars 06.06.2016 14:27
- Re: Ответ (updated), andylars 06.06.2016 12:08 / 06.06.2016 13:07
- Ответ, Sumo [M] 06.06.2016 13:14
- Как черновой вариант формализации..., andylars 31.05.2016 15:44 / 31.05.2016 23:22
- Ответ, moko [M] 01.06.2016 18:51
- Переосмыслил получившееся, получился откровенный наплыв двух совершенно разных методов., andylars 02.06.2016 10:37 / 02.06.2016 10:38
- Ответ, moko [M] 02.06.2016 11:36
- "Методы хеша" v.3. На утро, все значительно ужалось! :) ( Графическая схема прилагается.), andylars 02.06.2016 13:02 / 02.06.2016 13:42
- Ответ, moko [M] 03.06.2016 19:47
- Ответ, andylars 04.06.2016 00:11
- Ответ, moko [M] 04.06.2016 02:38
- А если вот так попробовать. Редакция v.4, andylars 04.06.2016 13:46 / 04.06.2016 18:14
- Обсуждение дальше + Disclaimer: в вопросе именований, названия методов, опций и подачи - я полностью полагаюсь на "парсерную мафию" :), andylars 04.06.2016 13:04 / 04.06.2016 13:15
- Сложно, G_Z [M] 04.06.2016 15:05 / 04.06.2016 15:06
- Ответ, G_Z [M] 03.06.2016 04:15
- Ответ, andylars 04.06.2016 00:15 / 04.06.2016 00:15
- Ответ, G_Z [M] 04.06.2016 00:25
- Ответ, andylars 04.06.2016 00:40
- смесь ключей и индексов не нравится совершенно, Misha v.3 [M] 02.06.2016 23:30
- Согласен практически со всеми доводами. Плюс, нарисовалась коллизия, которую можно вырулить., andylars 02.06.2016 03:00
- Мудрёно, G_Z [M] 01.06.2016 00:16
- Ответ, andylars 01.06.2016 09:45 / 01.06.2016 09:47
- А еще получить индекс ключа, зная название ключа, как-то реально без перебора всех записей? (-), 28.05.2016 17:16