Охуеть, вместо
set' = (fs' IM.! u) `IS.union` (fs' IM.! v)
можно написать
set' = uncurry IS.union $ join (***) (fs' IM.!) (u, v)
СТРЕЛОЧКИ СТРЕЛОЧКИ.
*haskell
ВНЕЗАПНО если думать о 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 особей на функции, данной паре тыщ точек, и все равно относительно быстро получать няшнорезультаты.
Наткнулся когда-то на haskcomplete.vim[1] — плагин к vim для автодополнения кода на Haskell. Сегодня обратил внимание на то, что за те полгода (или около того), что плагин провалялся у меня в ~/.vim/ftplugin, я его юзал ровно один раз — когда смотрел, что он умеет. Отсюда две мысли:
1. Haskell code is so dense that ... more →
#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 →
В lhs2TeX немного огорчает то, как приходится уродовать код ради формата poly.
Любви и обожания вечер: /me открыл для себя lhs2TeX и пытается заюзать на практике знаменитый кнутовский стиль программирования.
А в Haskell можно как-то без монад в чистых функциях исключения обрабатывать? Делаю упражнения из «Purely Functional Data Structures», очень не хочется городить огород с Maybe в 2.3.
Ииииии, легким движением руки операция по разбиению матрицы на список строк теперь составляет не 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 →
ВНЕЗАПНО, на х-ле нет ничего для выражения открытых/закрытых интервалов и проверки пересечения-етц. Придется велосипедить свое говно.
Для haskell'а есть биндинги и к webkit-gtk, и к vte, и даже к poppler'у. Можно вкостылить это всё осмысленно прямо в xmonad и получить удобные, амышиные личкрафты.
«Оххх, разрыв шаблона! Дмитрий Маликов пишет на haskell! http://t.co/UV1pMS3S http://t.co/phDY4LzQ Круто, чо»
*haskell is used by:
0xd34df00d
0xd34df00d
kb
kb
Minoru
Minoru
профессиональный говноед
ulidtko
Александр Марков
komar
Spiritual ecstasy
rapture
λ
lukish
zw0rk
zw0rk
Crazy_Owl
Crazy_Owl
16+
238328
4DA
4da
L29Ah
L29Ah
werehuman
werehuman
Evgeny I. E. Omelchenko
Elemir
amd63
amd63
Octocat
octocat
Mагог Магогович
magog
cirno
cirno
asmer
asmer
rhinze
rhinze
Voker57
Voker57
desperate donkey
odin
lexszero
lexszero
8
Eight
gelraen
gelraen
Michael Pogoda
MPogoda
folex
folex
folone
folone
nexeuse
nexeuse
Оранжевус Охуеннус
utros
Darth Bricktop
Like-all
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
Fess
zetoke
18+ Запрещено для детей.
hedgehog
beardog
beardog
oreolek
oreolek
Hirthwork McGillah
hirthwork
Andrew Motrenko
werdn
0xd34df00d
kb
Minoru
ulidtko
komar
rapture
lukish
zw0rk
Crazy_Owl
238328
4da
L29Ah
werehuman
Elemir
amd63
octocat
magog
cirno
asmer
rhinze
Voker57
odin
lexszero
Eight
gelraen
MPogoda
folex
folone
nexeuse
utros
Like-all
clayrat
SirAnthony
Psykukumber
Ky6uk
eurekafag
DJm00n
zamotivator
failman
saransk
jabber
madInsane
whisper
svtk
Jarkko
zetoke
hedgehog
beardog
oreolek
hirthwork
werdn