*Haskell

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 30.11.2011 10:12

Написал хуйню какую-то http://jabapls.ws/pattern-matching-ftw

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

Запилить что ли из своих хаскелей полноценную хуйню для обучения и всего такого. Добавить стратегии кроссвалидейшна, разбиения выборок, сравнения, кучу разных алгоритмов, хуе-мое. Пойду нейросети попишу.

MPogoda 22.11.2011 20:03

ДА У ХАЦКЕЛЯ ЖЕ МАСКОТ
http://imgur.com/a/niiTF

0xd34df00d 22.11.2011 17:26

И правда, неплохо подбирает. За 4-5 итераций генерятся такие функции, например, простые и хорошие:
Первая (в двух видах): http://dump.bitcheese.net/images/itebyku... и http://dump.bitcheese.net/images/igicaje...
Вторая (тоже): http://dump.bitcheese.net/images/ecifike... и ... more →

0xd34df00d 22.11.2011 14:31

Ня, ночные оптимизации позволяют спокойно гонять популяцию в 100-200 особей на функции, данной паре тыщ точек, и все равно относительно быстро получать няшнорезультаты.

Minoru 22.11.2011 12:18

Наткнулся когда-то на haskcomplete.vim[1] — плагин к vim для автодополнения кода на Haskell. Сегодня обратил внимание на то, что за те полгода (или около того), что плагин провалялся у меня в ~/.vim/ftplugin, я его юзал ровно один раз — когда смотрел, что он умеет. Отсюда две мысли:
1. Haskell code is so dense that ... more →

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 →

Minoru 21.11.2011 21:38

В lhs2TeX немного огорчает то, как приходится уродовать код ради формата poly.

Minoru 20.11.2011 20:52

Любви и обожания вечер: /me открыл для себя lhs2TeX и пытается заюзать на практике знаменитый кнутовский стиль программирования.

Minoru 19.11.2011 14:46

А в Haskell можно как-то без монад в чистых функциях исключения обрабатывать? Делаю упражнения из «Purely Functional Data Structures», очень не хочется городить огород с Maybe в 2.3.

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

ВНЕЗАПНО, на х-ле нет ничего для выражения открытых/закрытых интервалов и проверки пересечения-етц. Придется велосипедить свое говно.

Like-all 16.11.2011 21:08

http://dl.dropbox.com/u/19274654/picture...

Cleverbot знает ВСЁ о Haskell.

Elemir 16.11.2011 14:17

Для haskell'а есть биндинги и к webkit-gtk, и к vte, и даже к poppler'у. Можно вкостылить это всё осмысленно прямо в xmonad и получить удобные, амышиные личкрафты.

werehuman 14.11.2011 04:56

«Оххх, разрыв шаблона! Дмитрий Маликов пишет на haskell! http://t.co/UV1pMS3S http://t.co/phDY4LzQ Круто, чо»

*Haskell is used by:

0xd34df00d

0xd34df00d

kb

kb

Minoru

Minoru

λ

lukish

zw0rk

zw0rk

16+

238328

Crazy_Owl

Crazy_Owl

4DA

4da

L29Ah

L29Ah

werehuman

werehuman

amd63

amd63

Octocat

octocat

Rayslava

Voker57

Voker57

cirno

cirno

asmer

asmer

rhinze

rhinze

gelraen

gelraen

Michael Pogoda

MPogoda

lexszero

lexszero

8

Eight

folex

folex

folone

folone

nexeuse

nexeuse

Darth Bricktop

Like-all

oreolek

oreolek

Hirthwork McGillah

hirthwork

Klayraat

clayrat

SirAnthony

SirAnthony

Ky6uk

Ky6uk

eurekafag

eurekafag

hanyuupoke

Oleg Tsarev

zamotivator

failman

failman

lkdjvsdkjfgh

saransk

jabber

jabber

Андрей

whisper

svtk

svtk

Jarkko

Jarkko

Fess

zetoke

beardog

beardog