Бляди тоже ок, ага. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1244.0 пользователей не могут ошибаться!
?6955
прекрасное6446
говно5912
говнорашка5512
хуита4726
anime3068
linux2656
music2639
bnw2606
рашка2571
log2365
ололо2209
дунч1856
pic1816
сталирасты1491
украина1439
быдло1438
bnw_ppl1430
дыбр1238
гімно1158

Часто слышу следующие доводы за сабж:

  • Статическая типизация - тесты не нужны.
  • Иммутабельность данных - организация concurrency превращается в тривиальную задачу;
  • Благодаря сигнатурам функций не нужна документация;
  • Если где-то при рефакторинге поменять тип, то компайлер покажет где еще чо нужно поменять, чтоб программа собралась, PROFIT;
#FLKH71 (7) / @ninesigns / 4396 дней назад

Вот скажите, в хаскеле же есть средства против DRY?
Я практически не знаю хаскель, учил только Standart ML слегка. Решил почитать исходники GHC. Как это понимать https://github.com/ghc/ghc/blob/master/compiler/codeGen/CgUtils.hs#L27 https://github.com/ghc/ghc/blob/master/compiler/codeGen/StgCmmArgRep.hs#L120 ? Это что, нельзя сделать короче? Или это сгенерированные исходники?

#8TPSY1 (7) / @j123123 / 4401 день назад

Говнячить одноразовые скрипты на хачкиле довольно удобно получается, не хуже бидона какого-нибудь.
Захотел скачать видосы отсюда: https://www.scss.tcd.ie/Edsko.de.Vries/ct/catsters/linear.php

Prelude> page <- readFile "linear.php" (лол, HTTP-4000 не может в https)
Prelude> :m + Text.HTML.TagSoup
Prelude Text.HTML.TagSoup> let a = [x | x@(TagOpen "a" _) <- parseTags page]
Loading package bytestring-0.9.2.1 ... linking ... done.
Loading package array-0.4.0.0 ... linking ... done.
Loading package deepseq-1.3.0.0 ... linking ... done.
Loading package containers-0.4.2.1 ... linking ... done.
Loading package text-0.11.2.3 ... linking ... done.
Loading package tagsoup-0.12.8 ... linking ... done.
Prelude Text.HTML.TagSoup> let a' = filter ((TagOpen "a" xs) -> maybe False (isInfixOf "youtube") (lookup "href" xs)) a

<interactive>:5:52: Not in scope: `isInfixOf'
Prelude Text.HTML.TagSoup> :m + Data.List
Prelude Text.HTML.TagSoup Data.List> let a' = filter ((TagOpen "a" xs) -> maybe False (isInfixOf "youtube") (lookup "href" xs)) a
Prelude Text.HTML.TagSoup Data.List> let a'' = map ((TagOpen "a" xs) -> fromJust $ lookup "href" xs) a'

<interactive>:8:37: Not in scope: `fromJust'
Prelude Text.HTML.TagSoup Data.List> :m + Data.Maybe
Prelude Text.HTML.TagSoup Data.List Data.Maybe> let a'' = map ((TagOpen "a" xs) -> fromJust $ lookup "href" xs) a'
Prelude Text.HTML.TagSoup Data.List Data.Maybe> :m + System.Process
Prelude Text.HTML.TagSoup Data.List Data.Maybe System.Process> mapM_ (\u -> system $ "youtube-dl " ++ u) a''

#MT6REC (42) / @plhk / 4422 дня назад

типикал хаскелепроблемы -> http://juick.com/2277547

#NVETTZ (0) / @ninesigns / 4423 дня назад

Ну в общем потыкал эти ваши лензы. Не, ну чо, реально удобно ковыряться в стейте и
теребить поля рекордов. По видосу эдика было как-то неочевидно. Ехал профунктор
через профунктор сунул моноид в эндофунктор.
Делал вот эту хуйню:
http://www.linux.org.ru/news/doc/8930414/page1#comment-8934133
(Автор камента правда мудак, так и не ответил, правильно ли я понял задачу,
но это в общем-то не важно).
Cмешной понос: http://bpaste.net/show/I3MXDooyj8v1K3gEpAlu/
Есть только подозрение, что это задротство с операторами уровня J назавра забудется.

#M9GUK4 (4) / @plhk / 4432 дня назад

http://hackage.haskell.org/package/mahoro
Незаметен.

#PRHDMP (4) / @ap / 4434 дня назад

http://www.haskell.org/pipermail/beginners/2013-March/011550.html
Похуй манатки, ясно как запилить.
Какой лучше применить комбинатор на замену явной рекурсии?
У меня получилось так:
fix (\r s -> let (a::String, b::String, c::String) = s =~ "[A-E]" in if null s then s else a++(map toLower b)++(r c))
Но это как-то уебищно.
inb4 map (\c -> if isJust (find (== c) ['A'..'E']) then toLower c else c)

#OF4738 (5) / @plhk / 4434 дня назад

Вот часто пишут, что изучение хаскиля сделает вас лучше писать на других языках.
У меня обратная ситуация, например. На других языках писать становится очень ссыкотно, и
постоянно лезет эта функциональная писечка (типа наебашить сто тыщ мелких функций и
потом комбинировать их по-всякому, или там ADT).
Недавно написал что-то в духе
struct foo {
int *bar;
...
}
struct foo *f = calloc(sizeof(*f));
...
if (...) {
f->bar = malloc(sizeof(int));
(*f->bar) = 5;
}
чтобы получить Maybe int = int * | NULL.
Пиздец, вощем, пацаны, не учите хаскиль, если вы тупой.

#Q1K8YW (2+1) / @plhk / 4436 дней назад

Prelude> :l /tmp/a.hs
[1 of 1] Compiling Main ( /tmp/a.hs, interpreted )
Ok, modules loaded: Main.
*Main> :trace c
"Stopped at <exception thrown>
_exception :: e = _
[<exception thrown>] *Main> :back
Logged breakpoint at /tmp/a.hs:1:5-11
_result :: [a]
[-1: /tmp/a.hs:1:5-11] *Main> :l
Ok, modules loaded: none.
Prelude> :hist
Not stopped at a breakpoint

#IOZI08 (1) / @l29ah / 4438 дней назад
Заметка на память (как профайлить хачкиговна) 1) собрать нормально 2) собрать с профайлингом runhaskell Setup.hs configure --enable-executable-profiling --ghc-options="-prof -fprof-auto -rtsopts" 3) запускать с +RTS -p Библиотеки собирать с --enable-library-profiling.
#JQ419I (4) / @plhk / 4442 дня назад
http://www.haskell.org/ghc/docs/latest/h.....l#bugs-ghc > We have never found another class of programs, other than this contrived one, that makes GHC diverge, and fixing the problem would impose an extra overhead on every compilation.
#YHQDQR (0+1) / @ap / 4443 дня назад
Лень было собирать sdcv, изобразил такой понос: https://github.com/polachok/hdict С трансформерами наебался, правда, потом переделаю. IO (WriterT (IO Maybe a)) это ололо. Сначала было вообще IO (WriterT (IO Maybe (IO a))), но потом я немножко пришел в себя. Алсо, как всегда, реквестирую илиту, пусть расскажет мне как глобально и надёжно читать файлы, например.
#EC7X6D (10) / @plhk / 4443 дня назад
Как спросить у ОС, какие символы нельзя использовать в именах файлов в конкретной директории?
#OZVJZ1 (0+1) / @l29ah / 4445 дней назад
#I28VDJ (3) / @ap / 4446 дней назад
Потерял анальную девственность с Template Haskell. Код у всех такой уёбищный → http://ompldr.org/vaGsxNA/s.png ← или я один лошара? Алсо, поделитесь секретами бытия, как в хачкиле не уходить за овер 100 символов в строку.
#D8FFBZ (44) / @plhk / 4447 дней назад
Поделитесь историями успеха использования Control.Lens. Где-то видел статью "лензы для быдла", но потерял. Вощем, приглашаю в этот итт тред тех, для кого Costate Comonad Coalgebra не пустой звук.
#Z2I4T5 (12) / @plhk / 4448 дней назад
Что-то в это есть: @maxlapshin: 3 minutes ago @qnikst в любом случае поведение адептов хаскеля очень показательно и напоминает феминисток. Макс написал пост о том, что в go улучшение шедулера. Макс не пишет на хаскеле, его блог малоинтересен для программиста на хаскеле, но кто первым же влез? Правильно, дрочеры на хаскель. Не перлоебы, не какие-то ещё извращенцы, а именно дрочеры на хаскель. Почему? Я не знаю.
#VDLSSE (5+2) / @ninesigns / 4449 дней назад
Который из лисповых синтаксисов для хаскеля менее мёртв? Хотелось бы попинать один из них.
#6M6W57 (4) / @l29ah / 4462 дня назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.