metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-09-09 02:37 pm

Список внутри словаря

А вот как правильно сделать такую иммутабельную функциональную структуру данных:

есть словарь(map) из строк в качестве ключей и некоей структуры в качестве значений. Причем эта структура содержит внутри себя список. Для простоты можно считать что структура и есть просто список.
И задача - заполнить оный словарь имея список пар "строка-ключ, значение для списка". Ключи в списке пар повторяются. Короче, что-то вроде "select key,list(value) from KeyValuePairs group by key".

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

[identity profile] permea-kra.livejournal.com 2010-09-09 08:50 pm (UTC)(link)
foldl M.empty (M.unionWith (++)) . map ( uncarry M.singleton )

[identity profile] http://users.livejournal.com/_slw/ 2010-09-09 08:54 pm (UTC)(link)
у меня лаконичней

[identity profile] permea-kra.livejournal.com 2010-09-09 08:55 pm (UTC)(link)
У вас нечитаемый asii-арт.

[identity profile] http://users.livejournal.com/_slw/ 2010-09-09 08:57 pm (UTC)(link)
не более вашего

[identity profile] permea-kra.livejournal.com 2010-09-09 08:56 pm (UTC)(link)
И половина мысли, насколько я вижу

[identity profile] http://users.livejournal.com/_slw/ 2010-09-09 08:59 pm (UTC)(link)
ровно та половина, на которую хватило ТЗ