0xd34df00d
09.03.2012 12:55
Теперь на плюсцах можно писать действительно в функциональном стиле. Например, для проверки, что все DOM-элементы валидны, больше не нужно писать гроздья if'ов, можно сделать как-то так:
std::vector<QDomElement> elems = { autoSave, defaultPref, autoMeth, localMeth, manualMeth };
Prefs_.Valid_ = std::all_of ... more →
0xd34df00d
07.03.2012 09:24
Пришло время собрать свежий ghc, ghc-7.4.1 сам не соберется!
Кстати, интересно, сколько пакетов отвалится на ghc-7.4.1.
0xd34df00d
04.02.2012 12:42
О, ghc 7.4. Пойду смержу.
0xd34df00d
19.01.2012 18:07
Хотел написать кое-что на happstack. Открыл доки. Разболелась башка от монадных комбинаторов. Закрыл доки.
Завидую питоноблядям.
0xd34df00d
13.12.2011 07:20
Охуеть, вместо
set' = (fs' IM.! u) `IS.union` (fs' IM.! v)
можно написать
set' = uncurry IS.union $ join (***) (fs' IM.!) (u, v)
СТРЕЛОЧКИ СТРЕЛОЧКИ.
0xd34df00d
13.12.2011 07:07
ВНЕЗАПНО если думать о multiparam type classes не как о, собственно, тайпклассах, а как о наборе отношений, то все становится легче и понятнее. То есть, некоторая функция f для T t1 t2 — это тупо утверждение, что если соотношение, определяемое функцией (ее сигнатурой и вообще семантикой) выполняется для данных t1 и ... more →
0xd34df00d
13.12.2011 06:18
Я все еще просасываю с правильным и адекватным заданием собственных тайпклассов. В частности, сходу не получается сделать адекватный тайпкласс, параметризованный представлением графа и типом весов.
0xd34df00d
29.11.2011 12:47
Блин, после хаскеля даже думать лениво начинаешь. А C++ eager, и не получится передать аргумент в функцию так, чтобы он был вычислен, только если действительно понадобится функции. :((((((((((((
0xd34df00d
25.11.2011 10:48
Запилил базовую нормализацию деревьев выражений в виде протаскивания нод по ассоциативным и коммутативным операциям, когда это возможно. Выглядит мило:
normalizeTree (NBin f1 (LC lc) (NBin f2 (LC rc) t)) | f1 == f2 && (assoc $ binFInf f1) = normalizeTree $ NBin f1 (LC $ binaryOps f1 lc rc) (normalizeTree t)
Без ... more →
0xd34df00d
25.11.2011 10:22
Запилить что ли из своих хаскелей полноценную хуйню для обучения и всего такого. Добавить стратегии кроссвалидейшна, разбиения выборок, сравнения, кучу разных алгоритмов, хуе-мое. Пойду нейросети попишу.
0xd34df00d
22.11.2011 14:31
Ня, ночные оптимизации позволяют спокойно гонять популяцию в 100-200 особей на функции, данной паре тыщ точек, и все равно относительно быстро получать няшнорезультаты.
0xd34df00d
21.11.2011 23:42
#haskell — ОЧЕ ХОРОШИЙ КАНАЛ. Сейчас казуальненько так обсуждаем теорему Бауэра (или как его там), что нельзя причесать шарик.
0xd34df00d
21.11.2011 22:53
Приехали, для сборки моих говн нужно 7 терабайт памяти:
2:52:36 d34df00d deadtoo ~/Programming/Generating/hs % ghc -O2 -rtsopts -threaded Main
ghc: out of memory (requested 7015595245568 bytes)
0xd34df00d
21.11.2011 22:03
Символьное дифференцирование — это просто.
Вот такой код → http://paste.pocoo.org/show/511137/ дает вот такой вывод, например:
*Main> applyP pretty $ applyP' (partDiff (Var "x")) "2*x*y+x^y"
Right "((2.0*y)+((y*(1.0/x))*(2.718281828459045**(y*log (x)))))"
К сожалению, мой движок упрощений деревьев еще не настолько ... more →
0xd34df00d
17.11.2011 22:48
Ииииии, легким движением руки операция по разбиению матрицы на список строк теперь составляет не 35% времени исполнения, а 2.9%. Всего-то заменил относительно тупой алгоритм на умный unfoldr. Катаморфизмы, епта.
Всем, конечно, похуй, но https://github.com/0xd34df00d/gennl/comm...
0xd34df00d
17.11.2011 20:43
*Intervals> open (2, 3)
(2; 3)
*Intervals> open (2, 3) \/ Point 2
[2; 3)
*Intervals> open (2, 3) \/ Point 2 \/ Point 3
[2; 3]
С одной стороны, круто, конечно.
С другой, такой код меня смущает: showSimple (Unite (Point p1) (Unite (Point p2) (Open (a, b)))) | (p1, p2) == (a, b) || (p1, p2) == (b, a) = showPSym ("[", ... more →
0xd34df00d
17.11.2011 20:08
ВНЕЗАПНО, на х-ле нет ничего для выражения открытых/закрытых интервалов и проверки пересечения-етц. Придется велосипедить свое говно.
0xd34df00d
13.11.2011 14:19
Axioms делают из моих плюсцов какое-то хаскельблядство.
0xd34df00d
10.11.2011 14:34
Посоны, мне сделали предложение, от которого я не могу отказаться. Реализовать в KDevelop поддержку х-ля.
0xd34df00d
31.10.2011 15:01
*Generator> fst $ makeDoc ["hui", "pizda", "geegoordah"] 100 (unis $ randoms g)
" hui geegoordah geegoordah geegoordah hui pizda hui hui pizda hui pizda pizda geegoordah pizda pizda geegoordah"
Осталось найти слова и проверить, что слова выбираются действительно более-менее согласно нормальному распределению.