← All posts tagged special_olympics

blaze

Практически повторение предыдущего вопроса. Есть код, который парсит файл с данными, пока что выводя его структуру через trace на stderr. Хочу прикрутить к нему умную обработку этих данных, пусть пока он для простоты записывает их в том же формате в новый поток. При этом код хочется сделать достаточно обобщенным, чтобы ему потом можно было просто подпихивать нового обработчика-писателя, например для записи выходного потока в отличающемся формате. Дизайн с работой в Put монаде и ручным расковыриванием входящей строки мне не нравится, писатель получается слишком осведомлен о входящем формате, а я хочу относительно свободно их комбинировать, подобно трансформерам.
Что делать? Со вчерашнего дня ничего придумать не могу.
Исходник: gist.github.com
Файл с данными: github.com

blaze

пока у меня обсчитываются монстроидальные объемы данных, попробуйте разогнать расчеты: gist.github.com
алгоритм довольно простой, можно не только локальной оптимизацией заниматься, но и в целом что-то поправить
если что-то непонятно — спрашивайте