Охуеть, вместо
set' = (fs' IM.! u) `IS.union` (fs' IM.! v)
можно написать
set' = uncurry IS.union $ join (***) (fs' IM.!) (u, v)
СТРЕЛОЧКИ СТРЕЛОЧКИ.
Охуеть, вместо
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 особей на функции, данной паре тыщ точек, и все равно относительно быстро получать няшнорезультаты.
Наткнулся когда-то на 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 Круто, чо»
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