Yo dawg I herd you like maps...
fixResults = map (id *** map (dropWhile isNumber)) . concatMap (\(t, d) → map (\(st, l) → (t ++ " " ++ st, l)) d)
*haskell
Все чаще хочется обмазываться Control.Arrow. Например, вместо map (\(t, l) → (t, brkHead "===" l)) сделать map (id *** brkHead "==="). Мелочь, а красиво, приятно и point-free.
Впрочем, если парсить ленивым haxml, то нихрена памяти и не жрется, масштаб — мегабайт на все.
Ну и еще два гига на Data.Map с миллионом элементов, но это уже похуй.
Кстати, есть чо thread-friendly для ассоциативных массивов?
Как няшно поутру написать какую-нибудь такую функцию → process = sortByFreq . filterAbbs . foldr addWord M.empty . concatMap words . getQueries
Так, haxml тоже отжирает по 6 гигов на 43 метра иксемеля. Пойду подолблюсь в hexpat.
Поймал себя на бугурте от отсутствия чего-то вроде decltype для сигнатур в хачкеле.
А, блеа. я ошибся и запускал не на той машине скрипты. В общем, в позапредыдущем посте не три гигабайта, а 6 с половиной.
Prelude Text.XML.Light.Input> xml !! 1
Elem (Element {elName = QName {qName = "?xml", qURI = Nothing, qPrefix = Nothing}, elAttribs = [Attr {attrKey = QName {qName = "version", qURI = Nothing, qPrefix = Nothing}, attrVal = "1.0"},Attr {attrKey = QName {qName = "encoding", qURI = Nothing, qPrefix = Nothing}, attrVal ... more →
Парсинг 43-мегабайтного файла с xml — 3 гига сожранной оперативки. Ленивость @ функциональщина.
А долбиться в комбинаторы с haxml мне ленивовато.
Документация уровня типичного опенсорса → http://hackage.haskell.org/packages/arch...
ХАЧКЕЛЬ даже площадь простейшей фигуры посчитать нормально не может, получается
% runghc Main.hs pts.txt 2
Perimeter: 14.348093105974003; area: 11.375000000000009
Отсортировать в обратном порядке? sortBy (flip $ comparing smth) вместо sortBy (comparing smth).
Это вам не ебля с rbegin/rend.
Зато понимание отношения монад, функций и join позволяет записать вычисление расстояния между двумя точками как композицию вычисления вектора между ними и join'а скалярного произведения:
dist2' = join (<.>) . uncurry diffVec
Задали по методам распознавания изображений запрогать всякую хрень. Питонопитушки уложились в сотню строк. Матлабопитушки уложились в 50 строк. Я-хаскельбог уложился в 20 строк :3
Освоил использование section'ов для выражения большего числа мыслей в point-free style. Теперь мой код еще более нечитаем. А вкупе с backflip-ами так ваще.
Почему abs :: a → a в определении тайпкласса Num? Я соснул с реализацией Num для векторов :(
Минут 15 писал калькулятор средневзвешенного двух цветов. Пришлось даже КАРРИРОВАТЬ @ ДЕКАРРИРОВАТЬ, и вообще, как-то страшно выглядит:
avgColor (c1, c2) (w1, w2) = foldl (++) "#" $ map (show' . (`div` (w1 + w2)) . (uncurry (+))) $ zip (wt c1 w1) (wt c2 w2)
Охуенно, ghci падает при вызове GSL'ного фиттера, а самописный вполне себе работает.
Чо-то я заебался профилировать свой генетический хаскель-код и решил перехуячить все на плюсах. С моим-то опытом напишу так же быстро и лаконично, зато летать будет, чую.
Cкажи мне, нахуя scoped type variables включается только для explicitly forall'd переменных?
Поел говна с системой типов, scoped type variables и экзистенциальными типами.
ghc 7.6.1. А я только 7.4.2 собрал, эх.
Впрочем, очень клево продвинули систему типов. Только вот http://www.haskell.org/ghc/docs/7.6.1/ht... делает из моего няшного хаскеля какую-то питонятню.
А вообще, конечно, рефакторить код на х-ле — одно удовольствие. За час переделал код с велосипедов и dsp на hmatrix, попутно разобравшись в их API и всем таком. Тайпчекер котик, всего лишь натыкал констрейнтов, где нужно, и все просто работает.
*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