А давайте спецолимпиадку по типам? Есть код codegists.com это Freer для стрелок, но с ним проблема, нужно квадратичное число инстансов, так надо определять Category (Freer Category eff), Category (Freer Arrow eff), несмотря на то, что Category => Arrow. Что очевидно очень печально, и хотелось бы это поправить.

У меня получилось такое:

gist.github.com

Есть чуть более простые варианты но с тоже с квадратичным числом инстансов, хоть и более простых. Так же можно запилить вариант на TH который будет сразу генерить полный instance search, но это читерство.

Принимаются варианты и предложения по улучшению гиста.

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

а никто спецолимпиадку не хочет? Хочется уметь создавать Bell polynomials, для тех кто (как и я) не знат формулы:

B_n^k(x_1,...x_{n-k+1}= \sum \frac{n!}{j_1!j_2!\ldots j_{n-k+1}!} (x_1/1!)^j_1 (x_2/2!)^j_2 ... (x_{n-k+1}/(n-k+1))^{j_{n-k+1}}
где j_1+j_2+..+j_n=k, j_1+2*j_2+..=n.

en.wikipedia.org

производительность не важна — главное понимабельность и красота кода. Дополнительные стат гарантии типа того, что b(n,k можно передать только n-k+1 коэффициентов тоже не нужны, но если будут — то интересно.

Только сегодня и только сейчас [*] у вас есть отличная возможность
поизучать внутренности ghc, особенности компиляции и различные
stage и помочь мне понять, есть ли там баг или почему я дурак

Вот есть мелкий пример кода, который работает не как надо:
gist.github.com
подразумевается, что после компиляции и запуска я увижу:

1
1

а выводится только:

1

т.к. в функции test. case тупо игнорируется.

Мне кажется, что проблема в типе cast, т.к. scast работает нормально (см. мой предыдущий пост). Но так же мне кажется, что даже не смотря на эту проблему должен генериться валидный кот.

[*] — оборот в рекламных целях

#парамеирический-полиморфизм-для-лохов товарищи предлагаю спец олимпиаду — нужно написать на go identity function (функция, которая возвращает то значение, которое передано ей в качестве аргумента)

в честь ремонта в приёмной одного из управлений пришлось убить половину законного выходного на наведение порядка с кабелями и установку кабель-каналов (поменял заодно выходные емкости на бп свичей, уж больно у них там условия эксплуатации печальные). сам с утреца еле приполз, а начальник и того хуже — сразу разлёгся на столе с бутылкой минералки в обнимку — но, надо отдать должное, стоически продержался до самого конца, поддерживая процесс советами, рассуждениями о грамотном кабель-менеджменте и байками с неизменным финалом "вот с тех пор зарекся пить с кем попало", лол. под конец настойки накатили, поглазели на порхающих по улице выпускниц и разбежались отсыпаться. по пути решил ещё в парикмахерскую забежать, а там меня ждало вселенское разочарование — любимый мастер смотал в Крым (серьёзно — блядь, давно так не смеялся), в итоге попал в руки какой-то юной болтливой особы, постригла вроде и неплохо, но как-то непривычно. день прошёл с пользой, короче.

Какой замечательный персонаж выискался — смотрите, #2350109
Прекрасно в этом (и предыдущем его) сообщении всё, и комментарии, как говорится, излишни :) Более того, пациент при первой же попытке оспорить позицию щедро рассыпается угрозами и сразу же добавляет в BL — за что отдельное спасибо, т.к. участие в специальной олимпиаде прекращается прямо на старте.
Сезонное обострение — такое сезонное :)

Н-да. Всё-таки я пока не научился спокойно воспринимать крестовые походы против здравого смысла. Подогрело вот это: #2314766 про это: newsru.com

Возмутили сразу три момента.
1) Это делается исключительно из-за проведения олимпиады для ИНОСТРАННЫХ ГОСТЕЙ, а не для граждан этой страны.

2) Цитата:
Волонтеры на свои деньги лечат собак, стерилизуют их, сталкиваются с какими-то проблемами. Потом этих собак выпускают на улицу ...И ни у кого не возникло никаких вопросов? Типа, ну выпустили, и всё в порядке? На мой взгляд, за каждый такой "выпуск" должна наступать очень ощутимая ответственность. Сложно сравнивать, но на мой взгляд это где-то между покушением на причинение вреда здоровью (может загрызть ребёнка) и осознанным распространением биологически-активной угрозы. Нужно вводить новую категорию в УК.

3) Цитата:
Депутаты, несмотря на спешку в связи с подготовкой к Олимпиаде, все же выражают понимание. Они уверяют, что пока общественность не придет к согласию по этому спорному вопросу, решение не будет принято ...Тут остаётся только в недоумении развести руками. Очевидно, что "общественность" к согласию по этому вопросу сама никогда не придёт. А значит, толи эти крепкие хозяйственники там совсем без яиц, толи лыжи не едут. Ведь в этой ситуации даже думать особо не требуется — сверху пришла отмашка + пачка денег. Бери да делай. А ведь если организовать решение проблемы бродячих животных на практике, и привести обращение с животными в рамках города к порядку, то можно помимо мегатонн лулзов, генерируемых раскалёнными жопами "зоофилов", приобрести очень неслабый политический капитал. За счет федерального бабла! Не неся моральной ответственности на начальном этапе за ИХ решение этим заняться! Только подай это как заботу о детях в глазах родителей, ГОРОД ДЛЯ ЛЮДЕЙ, БЕЗОПАСНОСТЬ, САНИТАРИЯ, ПАРТИЯ РЕАЛЬНЫХ ДЕЛ, КО-КО-КО... Сделать это — будет первый город, на который будут равняться другие города. Тут ведь стоит только начать...

Но нет же. THIS IS RUSSIA, BITCH! Никакой логики, только хардкор.

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