Теперь на плюсцах можно писать действительно в функциональном стиле. Например, для проверки, что все DOM-элементы валидны, больше не нужно писать гроздья if'ов, можно сделать как-то так:
std::vector<QDomElement> elems = { autoSave, defaultPref, autoMeth, localMeth, manualMeth };
Prefs_.Valid_ = std::all_of ... more →
*haskell
Пришло время собрать свежий ghc, ghc-7.4.1 сам не соберется!
Кстати, интересно, сколько пакетов отвалится на ghc-7.4.1.
Хотел написать кое-что на happstack. Открыл доки. Разболелась башка от монадных комбинаторов. Закрыл доки.
Завидую питоноблядям.
Алгоритм Крускала в 5 строк: http://paste.pocoo.org/show/520188/
Все это работает над инстансами некоторого тайпкласса Graph (пока реализовано только так): http://paste.pocoo.org/show/520189/
Естественно, потребовался собственный костыль для disjoint data type: http://paste.pocoo.org/show/520190/
R люблю х-ль!
Охуеть, вместо
set' = (fs' IM.! u) `IS.union` (fs' IM.! v)
можно написать
set' = uncurry IS.union $ join (***) (fs' IM.!) (u, v)
СТРЕЛОЧКИ СТРЕЛОЧКИ.
ВНЕЗАПНО если думать о multiparam type classes не как о, собственно, тайпклассах, а как о наборе отношений, то все становится легче и понятнее. То есть, некоторая функция f для T t1 t2 — это тупо утверждение, что если соотношение, определяемое функцией (ее сигнатурой и вообще семантикой) выполняется для данных t1 и ... more →
Я все еще просасываю с правильным и адекватным заданием собственных тайпклассов. В частности, сходу не получается сделать адекватный тайпкласс, параметризованный представлением графа и типом весов.
Блин, после хаскеля даже думать лениво начинаешь. А C++ eager, и не получится передать аргумент в функцию так, чтобы он был вычислен, только если действительно понадобится функции. :((((((((((((
Запилил базовую нормализацию деревьев выражений в виде протаскивания нод по ассоциативным и коммутативным операциям, когда это возможно. Выглядит мило:
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 →
Запилить что ли из своих хаскелей полноценную хуйню для обучения и всего такого. Добавить стратегии кроссвалидейшна, разбиения выборок, сравнения, кучу разных алгоритмов, хуе-мое. Пойду нейросети попишу.
И правда, неплохо подбирает. За 4-5 итераций генерятся такие функции, например, простые и хорошие:
Первая (в двух видах): http://dump.bitcheese.net/images/itebyku... и http://dump.bitcheese.net/images/igicaje...
Вторая (тоже): http://dump.bitcheese.net/images/ecifike... и ... more →
Ня, ночные оптимизации позволяют спокойно гонять популяцию в 100-200 особей на функции, данной паре тыщ точек, и все равно относительно быстро получать няшнорезультаты.
#haskell — ОЧЕ ХОРОШИЙ КАНАЛ. Сейчас казуальненько так обсуждаем теорему Бауэра (или как его там), что нельзя причесать шарик.
Приехали, для сборки моих говн нужно 7 терабайт памяти:
2:52:36 d34df00d deadtoo ~/Programming/Generating/hs % ghc -O2 -rtsopts -threaded Main
ghc: out of memory (requested 7015595245568 bytes)
Символьное дифференцирование — это просто.
Вот такой код → 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 →
Ииииии, легким движением руки операция по разбиению матрицы на список строк теперь составляет не 35% времени исполнения, а 2.9%. Всего-то заменил относительно тупой алгоритм на умный unfoldr. Катаморфизмы, епта.
Всем, конечно, похуй, но https://github.com/0xd34df00d/gennl/comm...
*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 →
ВНЕЗАПНО, на х-ле нет ничего для выражения открытых/закрытых интервалов и проверки пересечения-етц. Придется велосипедить свое говно.
Посоны, мне сделали предложение, от которого я не могу отказаться. Реализовать в KDevelop поддержку х-ля.
Написал тут еще псотик про хацкель: http://jabapls.ws/laziness-vs-parallelis...
/r/ критики и комментов.
Собственно, генератор джигурды из предыдущего поста: http://paste.pocoo.org/show/500865/
*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"
Осталось найти слова и проверить, что слова выбираются действительно более-менее согласно нормальному распределению.
*haskell is used by:
0xd34df00d
0xd34df00d
профессиональный говноед
ulidtko
kb
kb
Minoru
Minoru
Александр Марков
komar
Spiritual ecstasy
rapture
λ
lukish
zw0rk
zw0rk
16+
238328
Crazy_Owl
Crazy_Owl
4DA
4da
L29Ah
L29Ah
werehuman
werehuman
Evgeny I. E. Omelchenko
Elemir
amd63
amd63
Octocat
octocat
Mагог Магогович
magog
Voker57
Voker57
cirno
cirno
asmer
asmer
rhinze
rhinze
8
Eight
gelraen
gelraen
Michael Pogoda
MPogoda
desperate donkey
odin
lexszero
lexszero
Darth Bricktop
Like-all
folex
folex
folone
folone
nexeuse
nexeuse
Оранжевус Охуеннус
utros
Fess
zetoke
18+ Запрещено для детей.
hedgehog
beardog
beardog
oreolek
oreolek
Hirthwork McGillah
hirthwork
Andrew Motrenko
werdn
Klayraat
clayrat
SirAnthony
SirAnthony
Псикукумбер Томатический
Psykukumber
Ky6uk
Ky6uk
eurekafag
eurekafag
Bender Bending Rodríguez
DJm00n
Oleg Tsarev
zamotivator
failman
failman
lkdjvsdkjfgh
saransk
jabber
jabber
Лисий хвост
madInsane
Андрей
whisper
svtk
svtk
Jarkko
Jarkko
0xd34df00d
ulidtko
kb
Minoru
komar
rapture
lukish
zw0rk
238328
Crazy_Owl
4da
L29Ah
werehuman
Elemir
amd63
octocat
magog
Voker57
cirno
asmer
rhinze
Eight
gelraen
MPogoda
odin
lexszero
Like-all
folex
folone
nexeuse
utros
zetoke
hedgehog
beardog
oreolek
hirthwork
werdn
clayrat
SirAnthony
Psykukumber
Ky6uk
eurekafag
DJm00n
zamotivator
failman
saransk
jabber
madInsane
whisper
svtk
Jarkko