← All posts tagged Спецолимпиада

qnikst
code Haskell Спецолимпиада
Есть плохая реализация fingerprint. Задача - придумать 2 разных типа, для которых fingerprint будет давать одинаковый результат:

 67 -- | The fingerprint of the typeRep of the argument
 68 fingerprint :: Typeable a => a -> Fingerprint
 69 fingerprint a =
 70     fingerprintFingerprints
 71       $ (fingerprintString $ module_ ++ "|" ++ name_)
 72       : map fingerprint args
 73   where
 74     tr = typeOf a
 75     (tycon, args) = splitTyConApp tr
 76     module_  = tyConModule tycon
 77     name_    = tyConName tycon


я точно знаю:
packageA:Foo.A
packageB:Foo.B

но есть ли что более интересное?
qnikst
Haskell Спецолимпиада задача написать минимальный пример, где вызывается подзадача, через асинк /forkIO которая не убивается через threadKill (race). Я пока вижу вариант замаскировать исключения и зависнуть или запускать в цикле ффи функцию не аллоцируя ничего. Специфичные для ранийма варианты принимаются
qnikst
Gentoo Haskell Спецолимпиада нужны новые силы для добавления нескольких фич к хакпорту (утилита для создания ебилдов). А именно:
1). прописывание описаний use-flag`ов (и прочей инфы в метадату)
2). прочтение доп инфы из ебилда (типа игнорированя юзфлагов или ch_deps)
3). (опционально) проверка алгоритма генерации зависимостей с учетом юз флагов)

Есть желающие?