Этого треда уже нет.
Это копия, сохраненная 25 января 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #374029
>>374025
Как вы пишите на этом адском языке, бляди?)
#3 #374031
Поясните, зачем он мне может понадобится. Точнее, зачем вообще нужна вся функциональщина.
sage #4 #374037
>>374031
Низачем.
#5 #374051
>>374029
>>374031
Вполне спокойно. Просто ограниченное быдло не осилило матан, вот и всё.
#6 #374052
>>374031
Ой, ошибся. Для распараллеливания вычислений, например.
#7 #374055
>>374051

>haskell


>матан


смеялись всем класом)
#8 #374070
>>374055
Ясно.
#9 #374078
>>374031
Для расширения сознания.
#10 #374079
Прошлой ночью открыли исходники первого в мире доказанного (на isabelle) микроядра ОС:
http://sel4.systems/
http://github.com/seL4
https://github.com/seL4/l4v#overview
https://github.com/seL4/seL4/tree/master/haskell
Последние гхц и каббала с песочницами теперь доступны и домохозяйкам:
http://www.haskell.org/pipermail/haskell/2014-July/024276.html
sage #11 #374085
>>374079
один из разработчиков изабеллы был моим препододавателем год назад
какая честь однако!
#12 #374086
>>374078
и ануса
#13 #374097
>>374031
Ну чтобы быть не таким как все, илитой.
#14 #374106
>>374052
На своей джавке я не могу распараллелить вычисления?
#15 #374108
>>374097
>>374078
>>374037

А серьезно если? Я думал может мне обмазаться функциональщиной, но какие профиты?
#16 #374110
>>374108
Научишься юзать ФВП в других языках. Даже в императивном коде у тебя станет больше чистых функций и иммутабельных объектов.

Ну и мозги немного размять, чтобы не засохли от энтерпрайзной унылоты.
#17 #374115
>>374110
То есть, привить себе хороший стиль писания кода на императивных языках? А самоценность у функциональных языков есть какая-то?
#18 #374143
>>374115

> А самоценность у функциональных языков есть какая-то?


функциональные языки - это полигон, близкое будущее, а не настоящее.
#19 #374343
>>374106
Можешь, конечно, разрешаю. Но тут-то это ПРОЩЕ!
sage #20 #374345
>>374143
Возможно, вы имели в виду: забытое прошлое
112 Кб, 720x960
#21 #374575
Когда нужно использовать lift*?
#22 #374596
>>374031
Тебе надоело писать много тестов и боятся что что-нибудь сломается после рефакторинга, и ты бы предпочел по больше подумать сначала чем мучиться потом.
sage #23 #374604
>>374596
Можно подумать, что к функциональщине не нужны тесты.
#24 #374661
>>374604
Чистой функциональщине нужно на порядок меньше тестов. Которые дадут намного больше уверенности кстати.
#25 #374662
>>374661
Почему?
56 Кб, 604x453
#26 #374664
>>374662
Попробуй потрогать большой проект на питоне например. Вот у меня есть такой на работе. Там хренова гора тестов, при более-менее радикальном изменении функционала треть тестов придётся снести минимум. Основная часть кода - воссоздание условий для небольшого ассерта.

В хаскеле я просто пишу ассерты. Без бойлерплейта. Монадный код конечно болеет той же болезнью, но во-первых ты знаешь какой код у тебя монадный, появляется большая уверенность в чистых функциях. Во-вторых само разделение на функции сильно очищает тесты и сам код: есть только вход и выход, никаких полей, других объектов внутри и прочего, ты сам будешь стремиться очистить список аргументов, а не передавать непомерно разросшийся объект куда ни попадя.
#27 #374667
>>374664
В дополнение свобода от целого класса багов связанных с тайп-еррор.
#28 #374814
>>374025
Зк - один большой хачкель-тред. Зачем отдельный-то создавать?
#29 #374867
>>374108

>А серьезно если? Я думал может мне обмазаться функциональщиной, но какие профиты?


Если ты не хочешь писать конкретно на Хаскеле, то профитов от обмазывания функциональщиной никаких. Но сам язык охуенный сам по себе.
>>374079
Никогда не понимал смысла платформы. Ну добавить к стандартной поставке гохаце кабал, алекс и хеппи, будет платформа. Вернее добавить к гохаце кабал, и всё, больше никакой разницы между работой с платформой и с "чистым" GHC я не заметил.
#30 #374868
>>374108
Раз у тебя вообще возник такой вопрос, значит, тебе это точно не нужно.
sage #31 #374876
>>374867

>конкретно на Хаскеле


Так ведь хацкель говно.
Есть же не настолько уебищные функ.язы - нет, питурды будут жрать протухший форс.
Потому что дегенераты без мозгов и воли - черви-пидоры, короче.
77 Кб, 505x533
#32 #374881
>>374876
Например какие? лямбдасрача-нить-иди!
sage #33 #374904
>>374881
Да хотя бы агда, идрис. Даже они уже лучше хацкельговна.
#34 #374909
хаскельбляди соснули у схемобогов
117 Кб, 1500x844
оффтоп #35 #374910
>>374025
На пикче Makise Kurisu? Обожаю этот сериал.
#36 #374929
>>374904
Выглядит как надстройки над тем же хаскелем.
sage #37 #374931
>>374929

>Выглядит


А разгадка проста.
#38 #374948
>>374910
Ага оно самое, тоже радугой от аниме
16 Кб, 300x255
#39 #374969
Анон, спсибо тебе. Как же я долго ждал такого треда!
sage #40 #375032
>>374876

>Есть же не настолько уебищные функ.язы


К сожалению нет. Хаскель не только лучший ФЯ, он вообще чуть ли не единственный ФЯ с достаточно развитой инфраструктурой для написания реальных программ. Поэтому я написал, что навыки функционального программирования, приобретенные в Хаскеле, практически бесполезны: других фЯ на горизонте не видно, а попытки использовать их в не ФЯ не приведут ни к чему хорошему.
#41 #375037
>>375032

>это сажебыдло с форсом хацкеля


Ясно.
Просто ты дебил и не знаешь других языков.
Да и хацкеля не знаешь, так-то.
#42 #375038
>>375032
Блиц-вопрос: чем Clojure не ФЯ с развитой инфраструктурой?
#43 #375043
>>375038
язык с динамической типизацией - не ФЯ, да и вообще не язык.
#44 #375057
>>375043
ФП — это иммутабельность, referencial transparency и функции высших порядков. Всё это в кложуре есть, что делает её самым настоящим функциональным языком.

P.S. Статическая типизация или динамическая — не имеет значения. Это отдельный концепт. Причём как у первого, так и у второго типа есть свои преимущества и свои недостатки. Невежественно считать, что что-то одно из этого лучше другого.
#45 #375063
>>374031
Незачем. Хаскель - это чёрная дыра, время, которое ты потратишь на его изучение будет потрачено абсолютно без пользы. Использовать в реальной работе ты его никогда не будешь, сказки про то, что изучение Хаскеля сделает тебя лучшим программистом - такая же безосновательная хуйня. Ну, правда, можно срать в /зк, если это для тебя важно. Лучше потрать это время на изучение языков, на которых ты реально пишешь.
#46 #375077
>>375063

> сказки про то, что изучение Хаскеля сделает тебя лучшим программистом - такая же безосновательная хуйня


Не знаток Хаскеля, но предполагаю, что изучение общей алгебры сделало меня лучшим программистом… косвенно. Может быть, мой код и не стал лучше, но лучше стал я сам и стал немного больше понимать и получать больше удовольствия от того, что делаю.
Наверное, Хаскель можно сравнить с математикой.
#47 #375079
>>374667
Поддерживаю. И вообще - в Python, PHP, Ruby есть куча потенциальных ошибок из-за отсутствия статической проверки типов. В Haskell - наоборот, максимум ошибок выявить при компиляции, минимум в рантайм.
#48 #375118
Потестил, как ghc работает с динамически создаваемыми типами (с помощью экзестенциальных типов). Моя изначальная гипотеза состояла в том, что в откомпилированном виде существуют лишь примеры функций с конкретными типами и соответственно такое вообще невозможно. Как оказывалось это возможно. Но при этом ленивого обсчёта сигнатуры типа, похоже, нет.
Собственно, вопросы. Как это работает в откомпилированной программе? Можно ли получить типы с ленивыми сигнатурами?

Тестовый пример:

{-# LANGUAGE ExistentialQuantification #-}
import System.IO
class S a where
s :: a->[Int]
data B1 a = B1
p1::(B1 a) -> a
p1 = undefined
instance S a => S (B1 a) where
s x = 1:(s $ p1 x)
data B0 = B0
instance S B0 where
s _ = []
u:: a -> B1 a
u= undefined
data SE = forall a. (S a) => SE a
instance S SE where
s (SE x) = s x
l:: SE -> SE
l (SE x)= SE $ u x
r:: SE
r= l r
main = do
print $ s (undefined:: B1 (B1 B0))
putStrLn "Enter a number:"
hFlush stdout
n<- readLn
print $ s $ (iterate l (SE B0)) !! n
putStrLn "Enter a number:"
hFlush stdout
k<- readLn
print $ (s r) !! k
#48 #375118
Потестил, как ghc работает с динамически создаваемыми типами (с помощью экзестенциальных типов). Моя изначальная гипотеза состояла в том, что в откомпилированном виде существуют лишь примеры функций с конкретными типами и соответственно такое вообще невозможно. Как оказывалось это возможно. Но при этом ленивого обсчёта сигнатуры типа, похоже, нет.
Собственно, вопросы. Как это работает в откомпилированной программе? Можно ли получить типы с ленивыми сигнатурами?

Тестовый пример:

{-# LANGUAGE ExistentialQuantification #-}
import System.IO
class S a where
s :: a->[Int]
data B1 a = B1
p1::(B1 a) -> a
p1 = undefined
instance S a => S (B1 a) where
s x = 1:(s $ p1 x)
data B0 = B0
instance S B0 where
s _ = []
u:: a -> B1 a
u= undefined
data SE = forall a. (S a) => SE a
instance S SE where
s (SE x) = s x
l:: SE -> SE
l (SE x)= SE $ u x
r:: SE
r= l r
main = do
print $ s (undefined:: B1 (B1 B0))
putStrLn "Enter a number:"
hFlush stdout
n<- readLn
print $ s $ (iterate l (SE B0)) !! n
putStrLn "Enter a number:"
hFlush stdout
k<- readLn
print $ (s r) !! k
42 Кб, 555x406
#49 #375125
>>375063
Программирование это чёрная дыра, время, которое ты потратишь на его изучение будет потрачено абсолютно без пользы.

Кампуктер это чёрная дыра, время, которое ты потратишь на его изучение будет потрачено абсолютно без пользы.
sage #50 #375128
>>375118
Я даже боюсь перечитывать твой пост. Вдруг говно в голове заразно?
#51 #375161
Скажите мне, уроды. Зачем книгу Антона Холомьева постите постоянно? Я вот вчера начал с нее и не смог постичь половины премудростей первых глав. Там вначале какая-то рекурсия в функциях, которая даже не объясняется, и еще этот Succ о котором:
Для иллюстрации мы воспользуемся числами Пеано, у них компактное определение, всего два конструк-тора, которых тем не менее достаточно для описания множества натуральных чисел:
module Nat where
data Nat = Zero | Succ Nat
deriving (Show, Eq, Ord)
Конструктор Zero указывает на число ноль, а (Succ n) на число следующее за данным числом n. В
последней строчке мы видим новый класс Ord, этот класс содержит операции сравнения на больше/меньше:

И больше про него нет ничего. Дальше упражнения надо с ними делать, а как? Если не объясняется нихера по этим внутрифункциональным рекурсиям и succ? Пидоры вы, я только время трачу на эту никому ненужную хуйню с неподдерживаемым кодом по причине нечитаемости.
#52 #375162
dpSwitch :: Functor col =>
(forall sf . (a -> col sf -> col (b, sf)))
-> col (SF b c)
-> SF (a, col c) (Event d)
-> (col (SF b c) -> d -> SF a (col c))
-> SF a (col c)
sage #53 #375175
>>375057
Во-первых, это не просто "должно быть", но не должно быть ничего, кроме этого. Например, поддержка иммутабельности есть во всех языках (ничего не мешает на Си писать с иммутабельностью), не должно быть мутабельности. Нужна не просто ссылочная прозрачность, но и независимость от порядка исполнения (в идеале), или хотя бы нормальный порядок (как в Хаскеле), без этого никакой ссылочной прозрачности на самом деле нет. Также не может быть её и без статической типизации: тип описывает, что делает функция, проверка типов не позволяет нарушить некоторые правила - например вызвать нечистую функцию из чистой. А если в языке нет иммутабельности и ссылочной прозрачности - то как его можно считать функциональным?
sage #54 #375176
>>375063

>сказки про то, что изучение Хаскеля сделает тебя лучшим программистом - такая же безосновательная хуйня


Согласен, знание Хаскеля - это необходимое условие, а не достаточное условие. Т.е. знаешь Хаскель - еще не обязательно являешься хорошим программистом. Не знаешь Хаскель - 100% быдлокодер.
sage #55 #375181
>>375161
Однажды ученик пришел к мастеру и сказал:
- Мастер, я уже три года изучаю в монастыре функциональное программирование, расскажи мне, что такое монада?
- Хорошо, - сказал мастер - ты уже действительно изучаешь функциональное программирование достаточно долго, пришло и твое время узнать, что такое монада. Приходи завтра на рассвете, мы отправимся в горы.
На рассвете следующего дня ученик пришел к мастеру функционального программирования и они отправились в путь.
- Смотри, - сказал мастер, указывая с вершины на их монастырь и монастырские поля, лежащие как на ладони.
Ученик два часа созерцал, не произнося ни слова.
- Теперь ты понял, что такое монада? - спросил мастер.
- Нет, ответил ученик.
- Какой глупый ученик! - сказал мастер и ударил его посохом.
#56 #375216
>>375181
Ну что тут можно сказать, этот мастер сломался. Алсо, видел сию пасту год назад в ньюфажном разделе. Когда мастер помрет - монады помрут вместе с ним. Ибо и они в нем, и он есть монада, и сам под кислотой.
Можешь книгу степ бай степ порекомендовать? Без ебнутых "это я вам потом объясню, просто записывай за мной" и отсылок к Бодхидхарме. Только практическая часть, только софткор.
#57 #375219
>>375161

> data Nat = Zero | Succ Nat


Что не ясно-то? Или конец цепочки, или следующее звено.
#58 #375226
>>375216
К сожалению, хаскелеаутисты не способны в человеческие гайды.
Но ты можешь посмотреть основные идеи на примере других языков:
http://rustbyexample.com/enum.html
http://www.hydrocodedesign.com/2014/04/02/higher-kinded-types/
http://typeclassopedia.bitbucket.org/
http://etorreborre.blogspot.ru/2013/06/a-zipper-and-comonad-example.html
Ну или ты всё-таки хочешь мануал по хаскелю: http://anton-k.github.io/ru-haskell-book/book/6.html
#59 #375255
>>375175

>подразумевает, что в хачкеле нет мутабельности


Тебя уже обоссали, хочешь быть ещё и обосраным?
sage #60 #375256
>>375216

>Алсо, видел сию пасту год назад в ньюфажном разделе.


Но как? Я её только что придумал!

>Можешь книгу степ бай степ порекомендовать?


Могу. Даже несколько:
Real World Haskell - унылейшее говно, которое только отобьёт желание изучать Хаскель.
The Haskell School of Expression - хороша книга, правда с того времени как она была написана, все используемые в ней библиотеки протухли. А если ты настолько виртуозно владеешь кабалом, чтобы все их собрать, тебе уже не нужна никакая книга.
The Haskell School of Music - гемора с библиотеками чуть меньше, чем в School of Expression (только их на кабале нет, надо качать с сайта автора и собирать ручками), но после неё ты ничему не научишься.
Еще есть Learn You a Haskell for Great Good - тоже пустая трата времени да еще с каким-то детсадовским юмором.

Алсо Хаскель нельзя освоить по книге. В нём с каждой версией компилятора появляется что-то новое.
#61 #375277

> Хаскель нельзя освоить по книге


> книгу степ бай степ


Более того, сама просьба некорректна. Хаскель - это ещё и набор личностных качеств. Не присущих вам, если нижеприведённых ресурсов недостаточно:
http://www.google.com (и альтернативы)
http://www.haskell.org/
http://www.reddit.com/r/haskell
http://stackoverflow.com/questions/tagged/haskell
http://citeseerx.ist.psu.edu/index
И вообще, все эти вопросы "как мне выучить хаскель можно ли нужно ли" в своих предпосылках абсолютно аналогичны "как мне выучить программирование можно ли нужно ли".
#62 #375328
>>375277
Начинай с The Haskell School of Expression дальше читай Typeclassopedia (http://www.haskell.org/wikiupload/8/85/TMR-Issue13.pdf), дальше статьи по ссылкам в тайпклассопедии, викикнигу (http://en.wikibooks.org/wiki/Haskell), а точнее отдельные главы. Ну и вики на haskell.org.
Некоторые няшечки могут посоветовать Душкина (беги от этой книги, как от чумы), Грема Хаттона или "Изучи себе хаскель во имя великой справедливости" - не слушай их, только напрасно потратишь время.
Ну а после изучения нормального языка программирования уже сам решишь, нужен ли тебе этото самое программирование.
#63 #375490
>>375328
Real World Haskell годная книга же.
#64 #376477
Захотелось пощупать язык. "Платформа" которую пердлагают на оф.сайте обещала занять на харде 1Г а мне стока неведомой ерунды сейчас не нужно. Тупо ghc требует еще и cabal какой-то. Есть варианты покомпактнее?
#65 #376480
>>376477
скачай в зипе
#66 #376485
при установке обещала занять на харде 1Г
самофикс.
#68 #376529
>>376517
Спасибо, но все же софтина на хард интересует. Неужели нет вариантов кроме "платформы" и гхц-кабал?
#69 #376530
>>375490

>Тупо ghc


Почти столько же, сколько и платформа.

>Есть варианты покомпактнее?


Вот тут создай себе бесплатный аккаунт https://www.fpcomplete.com/
#70 #376534
>>376529
Щито?

86728001 окт 10 2013 ghc-7.6.3-r1.tbz2
du -hs dev-haskell/
17M\tdev-haskell/
#73 #382464
Как же я заебался с этими монадами, это просто пиздец. 90% времени я не пишу код, я ебусь с монадами.
Как привить себе Haskell like мышление? Похоже я делаю это неправильно, я устал трахаться, помогите мне.
#74 #382491
>>382464
Так и должно быть. Код будешь на джяве писать.
#75 #382495
>>374025
Но ведь хаскель не нужен.
Дональд Кнут написал свое искусство программирования, используя ассемблер, и правильно сделал. А малолетнее школиё думает, что функциональщина делает их крутыми спецами. Хахаха. Функциональшина это просто уродливая надстройка над простым и ясным языком машины.
#76 #382526
>>382495
Ирония в том, что школота дрочит на "искусство программирования" из-за его названия, при том, что эта монография ни к искусству ни к программированию отношения не имеет.
#77 #382527
>>382526
Лол, ты хочешь сказать, что алгоритмы и структуры данных не имеют отношения к программированию?
Ты дурак?
#78 #382596
>>382527
Я полагаю ты не читал Кнута.
#79 #382601
>>382464
Напиши что-нибудь вычислительное для начала. Без монад.
Аноним #80 #382606
>>382464
Haskell like мышление заключается в том, чтобы подходить к архитектуре программ, как алгебраист к архитектуре математики, то есть структурно, исходя из фундаментальных вещей, а не из понятий, которыми оперирует бизнес-домен/предметная-область и прочее говно.
#81 #382608
>>382596
Я полагаю, что ты беспруфное хуйло.
#82 #382609
>>382606
Т.е. вся суть мышления в том, что оно основывается только на пустых, ни с чем не связанных абстракциях, ибо ты даже не сможешь человеческим языком объяснить что это за фундаментальные вещи, при чём здесь алгебра и т.п. и каким образом это может понадобиться.
#83 #382610
>>382608

>пытается сделать вид, что оппонент не предоставил "пруфоф" при том, что никаких "пруфоф" сам не запрашивал


понятно.
#84 #382613
>>382609
Пока ты четко не поймёшь, что такое абстракция, твоё развитие как программиста невозможно - всё будет как об стену горох.
#85 #382616
>>382610

>>тупой школьник попытался уйти от ответа на прямой вопрос, но обосрался


Ясно.
#86 #382620
>>382613
Нет, Маня, не виляй жопой, я сказал пустая, ни с чем не связанная абстракция. Как если я начну придумывать новые слова, которые ничего не означают.
sage #87 #382913
>>374051
Однажды я видел тут хаскелистов, которые решали задачу по подсчёту количества символов в числе через функцию длинны строки.

>>374078
Ты подал мне интересную идею как выучить наконец Пролог.

>>374909
Если бы ты привёл аргумент, то я бы угостил тебя чаем со смородиновым листом, но ты просто накакал и выставил схемобогов такими же школьниками как ты сам
HXT #88 #383263
В общем, как-то писал скрипт для скачивания порнухи. Использовал Ruby, nokogiri. Пара-тройка часов у меня на это ушло.
В это раз решил изъебнуться и повторить то же на Хаскеле, с использованием HXT.
Уже несколько дней ебусь. Эта их ебучая стрелка, вместо того чтобы заниматься тупо разбором XML/HTML, пытается стать самой главной, для этого в неё можно поднимать IO. При этом семантика самой стрелки ниразу не прозрачная. Как только я начинаю считать, что разобрался, она преподносит мне новый сюрприз.
И хочется сказать, что библиотека — переусложнённое говно, но ведь её используют! 77 обратных зависимостей. Значит, она не говно, просто у меня не хватает интеллекта для работы с ней? Выходит так, да?
P. S. Стрелочные законы не соблюдаются, но это, видимо, баг. Надо зарепортить.
#89 #383266
>>382913

> выставил схемобогов такими же школьниками как ты сам


Если бы ты привёл аргумент, впрочем напою тебя мочой.
#90 #383268
>>383263
Лол, у меня все нормально было, но я разбирал оче простой иксамель.
#91 #383272
>>383263

>решил изъебнуться и повторить то же на Хаскеле


вот где твоя проблема. ты же не используешь самокат для путешествия по стране, так же и тут.
#92 #383273
>>383268
А оно раз на раз видимо. И да, то, что я разбираю, генерировали видимо индусы руками, но это же не повод.
>>383272
Но ведь то, что предназначено для сложных юзкейзов, должно работать и с простыми, так?
#93 #383324
[CODE]openURIString url >>=
either putStrLn (writeFile fname)[/CODE]
И хули говорят, что pointfree нечитаем? Заебись читаем.
#94 #383325
>>383324
блин, разметку проёб

openURIString url >>=
either putStrLn (writeFile fname)
#95 #383337
>>383325
Это ещё не то, что подразумевают под "pointfree". Вот если бы у тебя не было url и fname - тогда да.
#96 #383346
>>383263
Просто ты не привык к программированию вообще. Тебе надо несколько лет регулярно этим заниматься - и тогда это будет занимать несколько часов, а не несколько дней. Почти уверен, если ты начнёшь разбираться с каким-нибудь Spring, даже с маленькой его частью, отвечающей только за DI или, скажем, только за AOP - будет то же самое.
#97 #383348
>>383346
Лично у меня то же самое в любой малознакомой мне области. Старт долгий и тяжкий, всё неинтуитивно и занимает много времени, на одну примитивную задачу уходит 10 часов. Но стоит продвинуться чуть дальше - и уже за 1 час решается 10 более сложных, и так далее.
#98 #383350
>>383346
Ну на руби же я быстро сообразил.
#99 #383351
>>383350
Во-первых, возможно, ты руби знаешь лучше, чем хачкел, во-вторых, nokogiri - это как-бы вообще либа для разбора html по css-селекторам. Разбор xml - это гораздо более общий случай. Если ты будешь свободно ориентироваться в хаскеле, и использовать только снаружи-внутрь-css-селекторное подмножество hxt, не задаваясь целью понять все фичи библиотеки, концептуально сложнее не будет. Скорее, некоторые вещи будет даже гораздо проще выразить, чем пришлось бы в nokogiri.
#100 #383352

> nokogiri - это как-бы вообще либа для разбора html по css-селекторам


Хотя нет, xml/xpath там всё-таки есть. Хуй знает, с чем я перепутал.
#101 #383353

> Но ведь то, что предназначено для сложных юзкейзов, должно работать и с простыми, так?


Да, оно и работает, но в зависимости от твоих хачкел скиллов и развитости твоего абстрактного мышления, оно может занимать от меньшего количества времени до гораздо большего.
#102 #383355
Вообще, есть кое-что, где хаскель объективно при любом скилле в общем случае проигрывает по скорости и удобству большинству других языков - задачи, естественным образом отображающиеся на переменные, линейные структуры, массивы и циклы (и ничего кроме, никакого полиморфизма, обобщений, иерархических структур, связностей, рекурсий и т.д.).
#103 #383387
>>383355

>линейные структуры


>массивы и циклы


map, filter, fold.
#104 #383391
>>383387
И бесконечное количество примеров, не укладывающихся приемлимым (или вообще каким-либо) образом в эти частные случаи.
#105 #383398
>>383391
Разве что перестановки/сортировки. Юзай готовый sort и не еби мозг.
#106 #383400
>>383398
Далеко не только. Например, мутировать элементы массива с изменяющимся по какому-нибудь закону (кроме i=1..n) индексом так, что каждое новое значение кроме старого и индекса зависит ещё от каких-нибудь значений (возможно, уже изменившихся на одной из предыдущих итераций текущего цикла) в этом же массиве. В этот пример я упаковал сразу несколько концепций, которые и по-отдельности невыразимы через map/filter и, нормальным образом, fold.
#107 #383401
Кстати, остальные рекурсивные схемы (кроме катаморфизма - fold - всякие там параморфизмы и т.д.) частично захватывают эти вещи.
#108 #383408
>>383400
Пробовал возвращать каждый раз left_part ++ [mutated_value] ++ right_part? Или Data.List.delete + insert?
В целом всё выразимо, но приходится возвращать целый список при операции с одним элементом. Интересно насколько ленивость может нивелировать затраты? Должна по идее сводить их почти к нулю.
#109 #383410
>>383408
Ебать дибил. Списки вообще не рассматриваются - у них доступ по индексу O(n). Я-то думал, ты хотя бы про всякие http://hackage.haskell.org/package/array-0.5.0.0/docs/Data-Array-MArray.html#g:5
#110 #383419
>>383410
Значит нужно избавляться от доступа по индексу и вычислять значения иначе.
#111 #383432
>>383419
Не пизди, откуда тебе вообще знать? Типикал ДП с табулированием функции по массиву с обратными обращениями к вычисленным на прошлых итерациях элементам никак нельзя переформулировать принципиально иначе, чтобы оно было так же эффективно, просто, и удобно.
#112 #383439
>>383432
Делай итерацию на map. И рекурсию на сколько тебе там надо раз. Разовый перебор списка убирает O(n) сложность. Вычисти функцию делающую непосредственные вычисления - чтобы она не брала агрумент-массив.
sage #113 #383499
>>383439
Ясно.
#114 #383509
>>382606

>структурно, исходя из фундаментальных вещей


Вот как раз этого мне и не хватает, все мои функции залипают в IO, отчего не могу использовать удобства языка.
Что посоветуешь? SICP?
#115 #383510
>>382913

>решали задачу по подсчёту количества символов в числе через функцию длинны строки.


show a =>a->Int
Так? Но ведь это правильно
#116 #383511
>>383509
Ни в коем случае не SICP. Просто прочитай целиком и прорешай exercises здесь:
1. http://www.haskell.org/haskellwiki/Typeclassopedia
2. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.123.1351 (справа сверху кнопка "pdf")
Дальше уже сам разбирайся. Можешь что-то отсюда почитать - http://www.haskell.org/haskellwiki/Research_papers/Monads_and_arrows , но я бы посоветовал вообще переключиться на учебники по алгебре и теоркату. Начать можно с общей алгебры ( https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%B5%D0%B1%D1%80%D0%B0#.D0.9A.D0.BB.D0.B0.D1.81.D1.81.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D1.8F ). Перед этим прочитай на вики, что это такое, как соотносится с элементарной/школьной, как с универсальной, и подбери подходящий учебник (набери в гугле и переходи по ссылкам только на что-то нормальное типа math.stackexchange). Обязательно решай все задачи. Не ссы, если нет ответов, и не уверен, что решил правильно.
#117 #383512
>>383510
Правильно, но лучше
[code]countDigits x
| x == 0 = 1
| x < 0 = countDigits (-x)
| otherwise = length $ takeWhile (/= 0) $ iterate (`div` 10) x[/code]
#118 #383668
Мне нужно от вас только одно: скажите куда все ушли с кодача усопшего нульча? А то у меня глаза вытекают от здешних `функциональщиков`.
#119 #383671
>>383668
на лор, ищи, есть тред
#120 #383772
>>383671

>на лор, ищи, есть тред


не нашел.
мимопроходил
#121 #383774
>>383668
Ну я еще здесь, просто не пишу ничего. Всё уже было написано несколько лет назад, обсуждать больше нечего, участвовать в спецолимпиадах лень, писать пасты вдохновение кончилось.
Стасик
#122 #383775
Хотя было бы неплохо замутить какую-нибудь забористую пасту. Может быть что-нибудь про малые категории, кокаин, перстень-печатку и квант-аналитиков в лакированных туфлях? Но нет, вообще никаких идей.. исписался.
#123 #383780
>>383774>>383775
Было бы круто перерождение чего-то вроде /c/, но с алгеброй, теоркатом, анализом, комбинаторной теорией игор, асимптотикопетушением, п=нп, обсуждением архитектуры методов решения олимпиадных задач, конструктивными доказательствами 2+2, парсингом яндекс капчи, и так далее. Угар закончился, потому что все уже поняли, что программирование гавно и нечего тут обсуждать (алтфаки заходят на все эти доски чисто по привычке). А полноценных формалсцаенсов до конца жизни хватит.
#124 #383805
>>383780

>Было бы круто перерождение чего-то вроде /c/, но с алгеброй, теоркатом, анализом, комбинаторной теорией игор,


то во что ты не можешь да?
#125 #383808
>>383805
Да, то, в чём я начинающий, но что мне интересно. Когда-то я и в кодинге был нуб, но мне было интересно, и потому я изучал лишп и заходил в /c/.
#126 #383809
Оказалось, что лишп и хашкель - это, конечно, весело, но это не программирование, а то, что происходит, когда математики попадают в область, где им не место. Эти знания в реальном программировании нахер не нужны и не ценятся, а если это убрать, то то, что остаётся - скучное говно.
#127 #383822
>>383808

>Да, то, в чём я начинающий, но что мне интересно.


книжки ты не читаешь, а хочешь просто мнение анонимного полуалкоголика или студента? ты может не знаешь, что вся эта хуйня счас устроилась на работы, поэтому пасты писать-то и некому
#128 #383825
>>383822
Это нужно для замены общения, а не книжек. Лично я сюда захочу чисто пообщаться, а не за знаниями, но хотелось бы доску с более интересной тематикой. А в сцай какие-то пидоры вечно обсуждают эфир, гмо, и эволюционное обоснование волос на жопе.
#129 #383830
>>374115
Чем плох SICP?
#130 #383855
>>383822
Когда меня взяли в Люксофт, мне предложили выбор: либо идти работать в опенспейс с джавистами за 110 тысяч рублей в месяц, либо в отдельный кабинет за 70. Я выбрал кабинет. Моими соседями оказались два хаскеллиста: квант-аналитик и специалист по формальным методам. Квант-аналитика и формальные методы, что может быть бесполезнее в Люксофте? Эти парни редко разговаривали между собой, единственное, что их выдавало - книжки по теории категорий. Иногда я находил в них закладки с посланиями, которые хаскеллисты оставляли друг другу. Похоже они доказывали какую-то теорему, они называли её "центральной леммой". Я не мог понять деталей, но, судя по их записям, теорема поражала одновременно своей простотой и универсальностью. Они применяли её для поиска решений диофантовых уравнений, и, казалось, весьма продвинулись в этом деле. Один из них даже пообещал мне показать как она работает, когда они завершат доказательство, но этому не суждено было случиться. В один прекрасный день хаскеллисты просто исчезли, как будто испарились или сквозь землю провалились. Недоумевающие эйч-ары ходили по пустому кабинету, а от хаскеллистов ни осталось и следа, только книжки по теории категорий и две пары лакированных туфель напоминали об их присутсвии. Вместе с хаскеллистами пропали все их записи и один из системных блоков. Было бы глупо предположить, что кража недорогого компьютера и стала причиной их исчезновения, тем более было непонятно, зачем красть компьютер, если любую информацию можно просто передать через интернет, тем не менее отключенный монитор и провода на столе подчеркивали реальность случившегося. Столь неординарное исчезновение хаскеллистов разбудило во мне какие-то детективные наклонности и я решил непременно разобраться в случившемся.
#131 #383865
>>383855
я так понимаю речь идёт об зефире и об баранове, так?
#132 #383883
>>383855
Моар
#133 #383901
>>383855

>для поиска решений диофантовых уравнений


На Филдса тянет.
#134 #383947
>>383883
Вот такой формат повествования тебя устраивает: http://pastebin.com/4evRNU2s
Если да, то могу продолжить. Жанр - детектив, пока не хочу сильно выёбываться, пусть будет что-то среднее.
#135 #383964
>>383855
Это конечно неплохо. Но почему здесь?
#136 #384076
>>383947
Вторая часть http://pastebin.com/LwYuyQSy
#137 #384091
>>383855
Фильм "Револьвер", если кто не понял.
#138 #384191
>>383510
Использование строковых функций над числами это грубо

>>383512
Вооот. Количество разрядов в числе это:
digits n = floor(logBase 10 (abs n)) + 1

Правда ни один из способов не работает с дробями, а как красиво посчитать количество знаков после запятой я сам не знаю.
#139 #384195
>>383830
Бамп вопросу
#140 #384205
>>384091
Да, револьвер, но я уже переработал. Финал, короче: http://pastebin.com/uwgBdsMj
#141 #384342
>>384205
Скатил в трешак, а начилось-то круто. Но так тоже круто. Скажи, в люксофте и правда балуются кокаином? Просто ты уже не первый, и даже не второй человек, мимолётом затрагивающий эту тему.
#142 #384350
В березнні 2011 року отримав запрошення проходити співбесіду від фірми «Luxoft». Приїхав зі Львова в Київ у фірмі мені організували співбесіду на 3-х проектах з яких на двох проектах я успішно пройшов співбесіду на позицію Senior Test Automation Engineer і вибрав проект [...] головним чином через спеціалізацію на тому проекті яка була подібна до моєї спеціалізації по кандидатській роботі в інституті. Прожект менеджером на даному проекті була [...]. Невідомо через які причини [...] з самого початку дуже хотіла мене звільнити. Не давала можливості звітуватися за роботу зроблену протягом дня. Не було ніякої реакції на мої прохання відкрити звітування. Потім стикнувся з такою річчю шо працівники проекту підливали в горнятко з водою якусь рідину без смаку шо має галюциногенні і гіпночичні властивості потім наскільки я зрозумів дана процедура називається «зомбізацією». На проекті з мене знущалися дійшло до того що цілу ніч працівники проекту сиділи в моєму під’їзді не давали мені спати стукали в мої двері і погрожували моєму життю. Так мене перестрашили шо я перестав заїкатися((( Ше після цього всього мене було безпідставно звільнено прожект менеджером. Після цього мені прийшлося місяць лікуватися в Моршині шоб відновити своє здоров’я. Від фірми за дані дії я компенсації так і не отримав.
#143 #384422
>>384350
было на доу. паренек вообще не адекватный
53 Кб, 270x327
#144 #384438
>>384342
Может они еще шлюх в офис заказывают?
#145 #384467
Поебался я несколько с этим вашем хаскелем. Недавно понадобилось одну хуйню размногопоточить. Так вот, я поймал себя за тем, что эта операция практически не задействовала мозги. На автомате изменил две строчки, думая больше о том, чем прожорливого кота кормить. Скомпайлил, и всё работает. Делаю вывод что этот хаскель оче простой язык, прямо для детей сделали. На джаве или пистоне была бы такая поеботень, а потом ещё что-нибудь из-за многопоточности наебнулось бы. Так хули здесь все про матан пиздят, да элиту из себя строят, если хаскель банально проще других популярных языков? Как велик со стабилизирующими колёсиками.
#146 #384470
>>384467
Разумеется хаскель прост. Сам не использовал, но очевидно, что такая строго математизированная система не может быть сложной
2723 Кб, 300x229
#147 #384490
>>384470

>Сам не использовал


ВСЯ СУТЬ ВСЕГО
#148 #387271
Я потерпел крах в решении основной задачи Haskell - вычисления числа Фибоначчи, а точнее последней цифры n-го элемента.
http://pastebin.com/rGuykLti
При n=10000000 падает:

[CODE]
/usr/bin/time -f '%e %M' ./fib 10000000
Stack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize -RTS' to increase it.
Command exited with non-zero status 2
1.51 3024976
[/CODE]
Что не так с кодом? Куда ему 3Gb памяти?
27 Кб, 854x220
#149 #387281
>>387271
Просто ты дурачок :3
#150 #387283
>>387281
Ну у меня в ghci тоже все работает. Ты скомпилировать попробуй.
20 Кб, 630x224
#151 #387288
>>387283
Скомпилировал оба варианта:
http://pastebin.com/umuLfz7W
#152 #387331
>>387288
У меня не работает. Выдает переполнение буффера.
GHC version 7.6.3
Можешь проверить сколько памяти твое решение потребляет?
#153 #387339
>>387331
Рор, я уже удалил все к чертовой бабушке, так что нормального теста не получится. Первый вариант жрет 1.2 ГБ (runhaskell), второй даже запускать не буду, ибо там быстрое возведение матрицы в степень - считай ничего.
#154 #387342
>>387339
Нагуглил решение:
[CODE]fibs' = unfoldr (\(!a,!b) -> Just (a,(b,(a+b) `mod` 10))) (0,1)[/CODE]
[CODE]time -f '%e %M' test 10000000
5
0.52 8768[/CODE]
Какая то ебаная магия.
http://stackoverflow.com/questions/6455898/how-to-avoid-stack-space-overflows
#155 #387345
>>387342
[code]test[\code]
[code]test\
[\code]
[code]/test[\code]
#156 #387346
>>387345
Абу опять все сломал.
#158 #387349
>>387348
Месяца два уже на харде лежит, все никак добраться не мог. Видимо время пришло.
#159 #387498
>>387348
Хм, кстати спасибо за ссыль, понравилось.

мимо
#160 #387826
Сап, Хаскелач. Есть одна ByteString и она представляет собой последовательность ascii символов. Внимание вопрос как вывести ее в провославном виде, если decodeASCII depricated, а decodeUtf8 вывод ее как внезапноUtf8?
#161 #387840
>>387826
Data.ByteString.putStr пробовал?
#162 #387858
>>387840
Да, Deprecated: "Use Data.ByteString.Char8.putStrLn instead. (Functions that rely on ASCII encodings belong in Data.ByteString.Char8)" выводит utf8.
#163 #387929
>>387858

> Use Data.ByteString.Char8.putStrLn instead.


Я даже не знаю.
#164 #387933
>>387929
Лол. Неправильно выразился. Data.ByteString.Char8.putStrLn выводит Bs как utf8.
Я собственно решил костылем, в основе которго map chr, но хочется нормального метода.
13 Кб, 698x110
#165 #387944
>>387933
Хрен тебя знает, тебе как на пикрелейтед что ли надо? Ну дык оно так и работает. Попробуй Data.ByteString.Char8.unpack в обычную строку, только обычный putStr будет ругаться если найдет символы с кодом (>127).
#166 #387995

>The JavaScript problem is two-fold and can be described thus:


>1. JavaScript sucks.


>2. We need JavaScript.



Какой транслятор в js нормальный, кто-то пользовался вообще? Haste, GHCJS или JMacro?
#167 #388045
>>387995
Проще писать на жс и не выёбываться.
#168 #388049
Почему везде пишут, что Хачкель неприменим для работы?
#169 #388053
>>388049
Потому что нет вакансий, очевидно же. Ну и нет юзабельного синтаксиса для циклов, переменных, записей, полиморфизма их и модулей (хотя сейчас уже есть экспериментальные модулеподменяемости), нет хорошей поддержки IDE уровня c#/java, сложная нативная модель компиляции и необходимость пересобирать мир в отдельном сендбоксе под каждый конкретный проект.
#170 #388082
>>388053

>нет юзабельного синтаксиса для циклов, переменных, записей, полиморфизма их и модулей


Толсто.
#171 #388083
>>388053
SOOQA
Содомит, прекращай.
#172 #388085
>>388049
Потому что высокий порог входа.
#173 #388146
>>374025
Как в Хачкиле потрошить графы? Допустим я хочу замапить небольшую часть вк и смотреть, как в ней ходят, допустим, репосты. То есть БД не нужна, все в памяти поместится.
Аноним #174 #388162

> Как в Хачкиле потрошить графы?


А главное, зачем?
#175 #388171
>>388162
А почему нет?
#176 #388172
А для чего вообще нужен Хаскель?
#177 #388198
Хочу просто друга, хачкель-куна. Разговаривать в четыре утра, будить его, показывать мандаду, и он будет злиться, но он всё равно ничего не скажет. Вот ты сидишь, а тут он заходит -- и ты поёшь ему песню, которую сочинил, пока он чистил сортир вилкой. Просто хачкель-куна, орать друг на друга до потери пульса, просить не стукать, кричать: "Да что ж вы люди делаете??" и слышать в ответ: "Какие люди? Мы одни здесь!"... Спорить о невысказанном, обсуждать, как поебалися, как срали на море... Принести ему хлеба сладкого, но не со зла, а так, из принципов... Чтобы он всегда понимал и прощал. хачкель-куна. Просто хачкель-куна. Скучать, когда он идёт на работу. При встрече предлагать сыграть в эндоморфизмы. Отжиматься для него двадцать раз. Рассказывать истории, чтобы шишка вставала. Не один раз играть роль хачкель-куна -- для какого-нибудь хачкель-куна. И когда он вскроет себе вены, пойти и смотреть, как хачкель-кун вешается, рассуждая о теории категорий. Улыбаться и верить, что он хачкель-кун. Настоящий.
#178 #388201
>>374025
Нахуй он нужен, если никто на вопросы не отвечает?
#179 #388202
>>388201
ЧТОБЫ КНИЖКИ ПРО НЕГО ПИСАТЬ И ДЕБИЛАМ ПРОДАВАТЬ
#180 #388227
>>388201
Просто ты быдло и не понимаешь сути Haskell тредов.
#182 #388549
>>375181
Монада - это просто моноид в категории эндофункторов.
#183 #388570
>>388146

У меня в проекте для подобного fgl используется.
Собственно, это вроде единственный вариант. Но либа хорошая. Обычную проблему (невозможность прямого представления графа с циклами в виде АТД ввиду неиндуктивности графов) она обходит с помощью превращения графа в индуктивно определённую структуру.

Успешный Haskell-кун
#184 #388595
>>388570
Вообще-то там метки есть. Цикл между вершинами 'A' и 'B' можно представить как (1, 'A', 2), (2, 'B', 1). Отождествлять помечаемость с "индуктивностью" спорно, потому что последнее для графов - вообще мутный термин ( http://math.stackexchange.com/questions/140178/what-is-an-inductive-graph ). Например, для тех же целей сгодились бы вместо натуральных чисел, например, строки, или любая другая хуйня с Eq, а "индуктивность" - явно о чём-то большем.
#185 #388607
>>388595

> Вообще-то там метки есть.



И что?

> Цикл между вершинами 'A' и 'B' можно представить как (1, 'A', 2), (2, 'B', 1).



Это как раз и есть косвенное представление (или косвенная адресация), ты же узелок тут не завязываешь.
#186 #388612
>>388595

>Отождествлять помечаемость с "индуктивностью" спорно



Нет, ты не понял. Я про помечаемость ничего не говорил (и даже не знаю, что ты здесь имеешь в виду).
Если тебя смутило слово «индуктивная», то в этом же контексте вместо этого часто говорят «рекурсивная»: http://en.wikipedia.org/wiki/Recursive_data_type
#187 #388615
>>388607>>388612

> косвенная адресация


Это я и имел в виду под "помечаемостью".

> «индуктивная», то в этом же контексте вместо этого часто говорят «рекурсивная»


> обходит с помощью превращения графа в индуктивно определённую структуру


Рекурсивность тут тоже не при чём. Помечаемость заключается в возможности поместить V в тупл с L, который его адресует. Для этого достаточно находиться в категории с произведениями.
Кстати, в fgl "индуктивные графы" - это тайпкласс с несколькими реализациями. Как минимум тип предстваления графа в реализации на мутабельном массиве https://hackage.haskell.org/package/fgl-5.5.0.1/docs/src/Data-Graph-Inductive-Monad-IOArray.html вообще не является рекурсивным.
1044 Кб, 1000x1000
#188 #388633
По какому признаку я пойму, что я уже по-настоящему знаю хаскел?
#189 #388646
>>388633
Когда Кметт будет спрашивать у тебя совет, а Олег Киселёв станет придумывать трюки с обобщениями твоих метапаттернов.
#190 #388653
Сегодня начинаю писать генератор штих-кодов на Haskell. Какие подводные камни?
#191 #388655
>>388653
Есть риск, что заебёшься на элементарщине, а интересных хаскельных вещей так и не прочувствуешь.
#192 #388677
>>388655
Не так уж оно и сложно.
http://book.realworldhaskell.org/read/barcode-recognition.html
Хотя да, заебаться можно и на хэллоу ворде, было бы желание.
#193 #388742
>>388677
То распознавание, а я генерацию буду делать. не буду на github нашел
#194 #388770
>>388742
Там писать распознователь, как раз, с генератора и начинают.
#195 #388824
>>388570

>fgl используется


Благодарю
#196 #388974
>>388615

> ип предстваления графа в реализации на мутабельном массиве



А это уже особенность реализации.
#197 #388980
Если кому-то интересно поработать на Haskell в Мск, ты можете выкладывать резюме.

У-H-к
#198 #389069
>>388980
Я не из Мск, поэтому лучше расскажи, чем примерно придется заниматься и что требуется от соискателя. Насколько это возможно, конечно, чтобы не спалить контору.
#199 #389155
>>374025
Можно ли в хачкиле "сохранить" функцию на диск или переслать ее по сети, как объекты в яве?
#200 #389157
>>389155
Поддержки такого в самом языке нет, слишком рефлексия.
А вообще
http://stackoverflow.com/questions/6926151/serialization-of-functions-in-haskell
http://stackoverflow.com/questions/17785916/can-haskell-functions-be-serialized
#201 #389249
Стасик, я тебя сегодня видел!
#202 #389360
Напоминаю, единственная в России вакансия Haskell разработчика еще открыта:
http://kirov.hh.ru/vacancy/11512058
sage #203 #389378
>>389360
Он там математику в начальных классах преподавать будет?
#204 #389447
>>389069

Писать DSL-чики для автоматизации бизнес-процессов, придумывать зависимо-типизированные слои хранения данных.
#205 #389448
>>389360

Вроде уже говорил — приличные вакансии на дейтинг-сайтах не выкладывают.
#206 #389451
>>375118

>, что в откомпилированном виде существуют лишь примеры функций с конкретными типами



Не факт, специализация это лишь возможное представление (часто она действительно включается — можешь прочитать про прагмы GHC SPECIALIZE/INLINABLE).

А так каждому классу соответствует тип словариков методов, каждой реализации — конкретный такой словарик. При компиляции вместо классового контекста в функцию передаётся конкретная реализация этого словарика (параметризованная выбранным типом полиморфного аргумента).
#207 #389453
>>382495

При этом к простому вычислителю лямбда-исчисления (SSA) уже сегодня сводятся почти все новые компиляторы.
#208 #389487
Котаны, поясните за Extensible Records, они блять что, до сих пор решиться не могут?

http://www.haskell.org/pipermail/haskell/2008-February/020177.html
#209 #389963
Решил написать, что нибудь на Haskell и сталкнулся с необходимостью использования Cшной библиотеки. /thread Нагуглил hsc2hs. Может кто нибудь поделиться опытом использования? Особенно интересна статическая линковка.
#211 #390122
>>384342

>Скатил в трешак


Просто я - хуёвый писатель. Вот как мастера пишут: http://udaff.com/read/netlenka/proza/44435.html
Или вот еще http://pastebin.com/ph1Shg4y
А мне придётся еще 10 лет кормить вас говном, перед тем, как получится придумать что-нибудь забавное. Ну хуле делать, анонимный двач для того и нужен, чтобы тренироваться не стесняясь.

>Скажи, в люксофте и правда балуются кокаином?


Правда. Но об этом не распространяются. Сам не вижу в этом ничего особенно хорошего.
#212 #390133
>>384342
Алсо, можешь за классику угореть. Или за серебреный век. Классика охуенна именно в плане языка. Например, язык Достоевского насколько крут, что ты можешь придти в любой книжный магазин, открыть любую книжку Достоевского на любой странице, начать читать, и сразу получишь огромное эстетическое удовольствие именно от манеры его письма, тебе сразу захочется купить эту книгу. Но проблема классики в том, что им, подобно джавистам, платили за страницы. Поэтому там будет охуенный язык и стиль, вроде джаваёбских промышленных паттернов, но сотни абсолютно бессодержательных станиц, которые в любом случае заебут, несмотря на виртуозность исполнения в деталях. Я, например, прочитал Войну и Мир, но нихуя не помню каких-либо ярких персонажей или интересных сюжетных моментов. Я вообще не ебу о чем эта книга, вроде Толстой хотел что-то задвинуть про патриотизм, но получилась какая-то полная хуйня.

Серебряный век, интереснее в этом плане. Но там начинают сливать в качестве. Я читал Пастернака. И как-то не оче, даже стихи. Но вот нео уже гораздо лучше. Например "Записки юного врача" Булгакова интересно читать. И чем ближе к нашему веку, тем интереснее, от Варлама Шаламова почти невозможно оторваться. И самые гипнотизирующие ИМХО современные писатели. Помню Баяна Ширянова. Но они не глубоки совершенно. У современных писателей можно читать только первые две книги. Потому что в первой он сказал что-то новое, в во второй досказал то, что не высказал в первой. Далее идёт коммерция. У Баяна - Низший Пилотаж, остальное - хуйня. У Пелевина - поколение Пэ, можно еще Затворник и Шестипалый, и еще пару книг, если тебе нравится пиздёж Пелевина, но ты там не найдёшь ничего нового. У Венедикта - Москва - Петушки, у Стругатских - Град Обреченный, Гадкие Лебеди, Улитка на склоне, хуй знает.. Ну еще Сорокин - День опричника (Сахарный Кремль - хуйня для любителей сериалов), Захар Прилепин - вообще хуй знает что, поэтому я читаю удафф, вроде этого http://udaff.com/read/netlenka/proza/40584/, что и остальным советую.
#212 #390133
>>384342
Алсо, можешь за классику угореть. Или за серебреный век. Классика охуенна именно в плане языка. Например, язык Достоевского насколько крут, что ты можешь придти в любой книжный магазин, открыть любую книжку Достоевского на любой странице, начать читать, и сразу получишь огромное эстетическое удовольствие именно от манеры его письма, тебе сразу захочется купить эту книгу. Но проблема классики в том, что им, подобно джавистам, платили за страницы. Поэтому там будет охуенный язык и стиль, вроде джаваёбских промышленных паттернов, но сотни абсолютно бессодержательных станиц, которые в любом случае заебут, несмотря на виртуозность исполнения в деталях. Я, например, прочитал Войну и Мир, но нихуя не помню каких-либо ярких персонажей или интересных сюжетных моментов. Я вообще не ебу о чем эта книга, вроде Толстой хотел что-то задвинуть про патриотизм, но получилась какая-то полная хуйня.

Серебряный век, интереснее в этом плане. Но там начинают сливать в качестве. Я читал Пастернака. И как-то не оче, даже стихи. Но вот нео уже гораздо лучше. Например "Записки юного врача" Булгакова интересно читать. И чем ближе к нашему веку, тем интереснее, от Варлама Шаламова почти невозможно оторваться. И самые гипнотизирующие ИМХО современные писатели. Помню Баяна Ширянова. Но они не глубоки совершенно. У современных писателей можно читать только первые две книги. Потому что в первой он сказал что-то новое, в во второй досказал то, что не высказал в первой. Далее идёт коммерция. У Баяна - Низший Пилотаж, остальное - хуйня. У Пелевина - поколение Пэ, можно еще Затворник и Шестипалый, и еще пару книг, если тебе нравится пиздёж Пелевина, но ты там не найдёшь ничего нового. У Венедикта - Москва - Петушки, у Стругатских - Град Обреченный, Гадкие Лебеди, Улитка на склоне, хуй знает.. Ну еще Сорокин - День опричника (Сахарный Кремль - хуйня для любителей сериалов), Захар Прилепин - вообще хуй знает что, поэтому я читаю удафф, вроде этого http://udaff.com/read/netlenka/proza/40584/, что и остальным советую.
#213 #390221
>>384342

>Скажи, в люксофте и правда балуются кокаином?


Во всех крупных IT-компаниях упарываются всем что попадется. Это нормально, это часть рабочего процесса.
#214 #390235
>>390221
Завтра же рассылаю резюме
вонаби-0мич
#215 #390238
>>390133
Удваиваю Шаламова.
У Достоевского бессодержательности как таковой и нет, все идет в нагнетание грязной тягучей атмосферы.
#216 #390245
>>390235
Хорошенько подготовься к собеседованию. У тебя уже должен быть опыт упарывания веществ кроме алкоголя, это раз, во-вторых на собеседование лучше приходить уже упоротым. Каким именно веществом – зависит от позиции. Кем собрался работать?
#217 #390248
>>390245
На кодера естественно. До этого только кофе и сигареты
#218 #390250
>>390248

>До этого только кофе и сигареты


Не пройдешь. Этого даже для омича-джуниора недостаточно. Совсем без опыта не возьмут.
#219 #390298
>>383432
С ленивостью — легко. Делал ДП-шные алгоритмы для Курсеры на обычных иммутабельных Array с ленивой инициализацией.
#220 #390313
>>374031
Да потому что это ещё и неожиданно практичный язык для быстрого прототипирования. Я вот для работы экспериментировал с кое-какими геоданными. Набросал парсер на attoparsec, прикрутил выгрузку в Elasticsearch (попутно нашёл пару багов в bloodhound, правда), добавил визуализацию на gloss, потом экспорт в JSON для веба. Либы качаются и ставятся, комбинаторы комбинируются, почти всё компактно и без бойлерплейта. Когда понадобилось ускорить выгрузку — распараллелил, поменяв пару строчек. Представляю, сколько бы разгребал сегфолты и утечечки, если бы писал, как весь отдел, на крестах (или «object has no attribute» на динамикопараше), а тут сухо и комфортно, даже юнит-тесты не понадобились.
Отсутствие человеческой быдлоIDE, конечно, расстраивает, приходится сидеть в ебучем емаксе. Но ради удобного и изящного языка готов потерпеть.
#221 #390320
>>389447

Ну и эта, хоть какой-то опыт по теме обязательно нужно будет показать.
#222 #390872
>>375256
Beginning Haskell: A project-based approach
#223 #390879
>>375256

>В нём с каждой версией компилятора появляется что-то новое.


ООП скоро появится?
#224 #390980
>>390879
нинужно
#225 #391152
>>390980
Можно будет переманить джава быдло, которое сделает язык популярным и убьет его. Таков путь всех вещей.
#226 #391160
>>390980
ну а что нужно-то борщехлёб ты мамкин? фиброначи считать или фокториалусы?
#227 #391186
>>391160
В Сях нет ООП, сишники тоже борщехлёбы?
#228 #391194
Ребята, недавно стал хаскиебом, но тут же возникла проблема - какую среду выбрать и нормально её настроить. Пробовал и глючный Leksah, и хипсторские Sublime с LightTable, и даже плагин ни идею, но что-то толком ничего не понравилось. Расскажите кто чем пользуется, а так же какие инструменты нужно настроить что бы облегчить себе жизнь?
#229 #391212
>>391194
http://eclipsefp.github.io/
https://github.com/Atsky/haskell-idea-plugin
https://www.fpcomplete.com/business/haskell-center/overview/
Есть знакомые, которые почти весь код пишут в виме (скалу правда, но раньше и хаскель там же хуячили).
Сам не хаскеллист нихуя, поэтому советовать ничего не буду, пробуй @ выбирай.
#230 #391231
А что есть в хаскеле для фронденда/GUI? Так что бы на жс-говне не писать совсем?
А то полезный код я уже весь написал, а как юзерам показать красиво не знаю.
#231 #391254
>>391186
нет, они байтоёбы, но в си хотя бы управление памятью есть в отличие от хаскалпараши
#232 #391260
>>391231
Есть фреймворк yesod для веба. Есть биндинги к гтк и кутям, а еще FRP надстройки к ним. Что именно тебе нужно - я не знаю, так что и мне лично писать больше смысла нет.
86 Кб, 900x900
#233 #391338
>>374025
А это правда, что в хаскеле нет побитового отрицания? Как вы тогда выражаете побитовые nand, nor, xnor?
sage #234 #391355
>>391338
Да. Адским пердолингом. На самом деле Data.Bits
106 Кб, 750x750
#235 #391360
>>391355
Специально для тебя:
http://ideone.com/mLVWFw

5 xnor 7 = 5, если что
sage #236 #391362
>>391360
Специально для тебя: http://ideone.com/cixm5a
#237 #391387
>>391260

>Есть фреймворк yesod для веба.



Так в нем точно так же надо на жс-говне писать фроненд.
Мне надо web app или что-то аналогичное.
#238 #391392
>>391387
Там же вроде какой-то свой язык который потом в жс транслируется.
#239 #391408
>>391387
PureScript
#240 #391452
>>391212
Еклипс тормозное говно, не хотет. Плагин к идее вроде неплох, но мне так и не получилось научить его показывать тип выражения(может есть внешний инструмент для этого?).ФПкомплит не достаточно гибкий для моих потребностей.
#241 #391470
>>391452

>Еклипс тормозное говно, не хотет.


Зато языковой комбайн. Хотя кроме этого про него ничего хорошего сказать не могу, сам пользуюсь Idea.

>не получилось научить его показывать тип выражения


Все ждут твоего пулл-реквеста.
#242 #391634
>>390238
Достостоевщина доябывает. Но это лицо русской литературы, наша визитная карточка. За рубежом Россию ценят только из-за Достоевского, остальное им не особо интересно, если быть честными. Взять тот же фильм "Левиафан", который они оценили, но ведь это, сука, чистейшая достоевщина. И их клюквa: седой русский мафиози читает "Преступление и наказание" в кожаном кресле в своём рабочем кабинете (не помню, в каком фильме, но это архетип) - это им нравится. Чем еще представить русскую культуру, кроме как Достоевским? Некем, блядь, он ярок (в их понимании), а остальные не заслуживают их внимания на фоне собственных писателей. Что еще у нас было яркого в кинематографе? "Остров"? Ничуть не лучше. Тарковщина и достоевщина - вот наша культурная стезя. Плюс пара комедий тошнотворного качества для внутреннего потребления, которые не экспортируются по очевидным причинам. Поэтому тягучий, грязный депрессивный Достоевский - наше всё, никто не ценит нас в другом качестве, "Бесы", "Идиот", "Униженные и оскорблённые" это всё.
#243 #391637
>>390313

>Отсутствие человеческой быдлоIDE, конечно, расстраивает, приходится сидеть в ебучем емаксе.


Ну ёб твою мать, fpcomplete уже вторую версию ide выкатывает. С IDE в хаскелле всё хорошо, проблема в том, что он сам местами не столь хорош.
#244 #391639
>>389487
Не читал, попробуй vinyl.
#245 #391641
>>390879
Было с самого начала, rang-2 types (быдлу не понять, что это и есть ООП)
#246 #391902
>>391641
Это расширение, а не «с самого начала».
Кстати, яркий пример ООП аж в стандартной библиотеке – Control.Exception.
#247 #392193
>>391639
Vinyl шумный слишком, хотет записи как Elm`е.
#248 #392195
>>391637

> fpcomplete


Чё бля. 10 баксов в месяц? На хуй собачий пошли
#249 #392343
>>390313
fpeclipse довольно богат по возможностям по сравнению с доступными альтернативами
#250 #392345
Есть ли в хаскеле что-то похожее на LINQ?
#251 #392348
>>392343
чтобы на хаскеле пописать надо и об джаву себя замарать
#252 #392355
>>391637
Нахуй все эти облачные говноide нужны, если туда даже библиотек накачать нельзя и доступиться к ресурсам на своём компьютере? Это гавно реально полная хуйня - сама задумка, в корне. Лучше бы все эти бабки вбросили в плагин для IDEA.
#253 #392358
>>392348
в атоме тоже норм поддержка хаскеля через плагин, правда сам атом глюковат
#254 #392655
Котаны, питонист на связи!

Я тут почитал "человеческий хаскелл", и вся эта тема с
ФП, иммутабельностью, чистыми функциями мне кажется несколько притянутой за уши в наш суровый реальный мир.

Ну то есть для математиков может оно и охуенно, доказанные алгоритмы реализовывать, а для реал лайф кодинга - нипонятно насколько это профитнее.
Но может быть это потому что мой мозг привык оперировать императивно-ООПшными категориями.

Для меня профитом было бы ускорение разработки софта - я пишу всякие вебкраулеры и последующую обработку числовых данных, никакой биг дата, производительность в принципе не роялит. Хочется писать более эффективно.
Даст ли мне это хаскелл или я буду создавать структуры и типы и нахуеверчивать монады дольше чем если бы я хуяк-хуяк и набыдлокодил на питончике?
sage #255 #392656
промоушен олимпиадки
>>392648
#256 #392662
>>392655

> Для меня профитом было бы ускорение разработки софта


> Даст ли мне это хаскелл


Конечно нет. Хаскель - это ещё медленнее и задроченнее, чем на жабе, причём если в оной только наяривание на robust scalable архитектуру, то здесь ещё и формализация всего (даже таких вещей, как распространение состояния) до самых оснований.

> или я буду создавать структуры и типы и нахуеверчивать монады дольше чем если бы я хуяк-хуяк и набыдлокодил на питончике?


Именно так. Хаскель любят люди, кому вообще неинтересно просто решить задачу, а интересно поформализовывать, потеоретизировать, подумать о структуре вещей. Конечно, в результате нередко получаются решения уровня качества совершенно несоизмеримого с тем, во что могут прикладные недоязычки, но на это уходит в 100500 раз больше времени, а использовать их все в прикладном коде всерьёз получится только когда системы типов прикладных недоязычков догонят текущую хаскеля в некоторых аспектах. Сейчас такое возможно только иногда со Scala и C++.
#257 #392663
>>392662
короче, пускай скалу изучает, годнота и годится на всё, на что годится джява™
#258 #392753
>>392345
Скорее, это LINQ – что-то отдалённо похожее на Haskell.
#259 #392755
>>392655
Приноровившись, а хаскельчике тоже можно хуяк-хуяк быдлокодить, только оно при этом не будет падать.
>>390313-кун
#260 #392980
>>392662

Ну вот всякие Зефировы утверждают, что через годик практики можно писать на хаскелле с той же скоростью, что и на императивных язычках.
Есть тут многоопытные хаскеллисты, способные сие подтвердить/опровергнуть?
#261 #392988
Скажите, а в Haskell есть макросы в стиле LISP/Forth/Nemerle? Можно изменять AST и сделать свой язык без написания компилятора? Что-то типа

DRAW CIRCLE ON myCanvas CENTER(100, 100) RADIUS 150
DRAW RECTANGLE ON myCanvas FROM (5, 5) WIDTH 400 HEIGHT 300
INSERT INTO TableName IN myConn VALUES (a, b, c)
OPEN FILE "Data.txt" FOR READ AS fileVar
#262 #392990
>>392662
Понятно. Говно этот ваш Хаскель, буду учить F# и Scala.
56 Кб, 604x495
#263 #393026
Котаны, похвастайтесь своими поделиями на хаскеле. Гихтабы, скриншоты, видео - главное чтобы программа была большей частью хаскельная. Можно ещё лвл приписать. Для мотивации.
#265 #393031
>>393027
Посмотреть бы ещё гитхаб Стасика. И золотца заодно
#268 #393060
>>392988

>макросы


Нету.

>Можно изменять AST


Да. g://Template Haskell
#269 #393062
>>393060
Долбоёб, так правильно:

> макросы


Да. g://Template Haskell

> Можно изменять AST


Нету.
#270 #393065
>>393062
Чому?
#271 #393066
>>392988
В хаскеле такие eDSL обычно говнякают на комбинаторах. Например, http://projects.haskell.org/diagrams/doc/quickstart.html
Если недостаточно — см. Template Haskell и квазицитирование всякое.
#272 #393069
>>393065
Потому что изменять AST хаскеля нельзя, оно фиксированное. Нельзя добавить кейворд там, или новый декларатор, или ещё что. Можно оживлять/строить обычное AST хаскель кода. А сплайсинг квазицитат - это и есть макроэкспаншн.
#273 #393086
>>374025
Как скомбинировать набор функций с сигнатурами [a] -> [[a]]?
#274 #393092
>>393086
Ну это очевидное

> m a -> m (m a)


Комонадический duplicate.
#275 #393093
Обычные списки не являются комонадой, но непустые - да. В хаскеле уже написан нужный тип и инстанс:
https://hackage.haskell.org/package/semigroups-0.15.2/docs/Data-List-NonEmpty.html#t:NonEmpty
https://hackage.haskell.org/package/comonad-4.2.2/docs/Control-Comonad.html
#276 #393112
>>393086
В смысле «скомбинировать набор функций»? Пример, что должно получиться, можно?
#277 #393193
>>384191
digits(9)=floor(lg(9))+1=floor(0,95)+1=1+1=2
Что блять?
#278 #393245
>>393193
floor(0,95) = 0, с round и ceil не путай
#279 #393390
>>393112
Я даже упрощу: есть [f, f ... f], где f = \x -> [x].
ghci нормально жрет выражения вида (f .)_{n раз} f $ some_list, введенные вручную, но написать фолд, чтобы получить то же самое, но для списка переменной длины, у меня не получается.

>>393092 >>393093
А вот человек предложил комонады, но не дал и намека на то, что же с ними делать.
#280 #393401
>>393390
допустим есть функция

g n = [f,f..f] (список длины n с твоей функцией)

какой у неё тип?
её тип зависит от n?
#281 #393403
>>393401
ой тоесть
g n = f . f ... . f n раз композиция
#282 #393480
>>393403

> какой у неё тип?


$ let f = undefined :: x -> [x]
$ :t f
f :: a -> [a]
$ :t (f . f)
(f . f) :: a -> [[a]]
$ :t (f . f . f)
(f . f . f) :: a -> [[[a]]]
Ну ты понял..
Наверное ты хотел что-то вроде:
(flip $ foldr ( =<< )) [f,f,...,f] some_list
#283 #393520
Держи, динамический петушок, всё как ты хотел: http://ideone.com/1fBW00
Клуб анонимных борщевичков #284 #393952
Здравствуйте, меня зовут Валера и я ничего не знаю о теории категорий.
#285 #394143
>>393952
Так всё-таки надо или не надо её знать чтобы успешно работать с хаскелем?
#286 #394150
>>394143
Успешно работать с хаскелем = твои статьи, формализующие программированиепроблемки категорными абстракциями с примерами на хаскеле, принимают в элитные рецензируемые научные журналы. Примеры:
http://homepages.inf.ed.ac.uk/wadler/papers/constraints/constraints.pdf
http://www.cs.nott.ac.uk/~txa/publ/qio.pdf
#287 #394158
>>394150
Лучше бы вместо пейперов они библиотеки накатали. А то доказали@формализовали, а толку с гулькин нос, никто этим не пользуется.
#288 #394160
>>394158
Так а на хаскеле этим и не получилось бы пользоваться. Он же неудобный.
#289 #394161
>>394160
Есть что-то лучше?
inb4: agda, coq, lisp
#290 #394164
>>394161
"Лучше" понятие контекстуальное. Хаскель более удобен, чем agda и coq, но менее удобен, чем большинство мейнстримных быдлоязыков. Только вот на последних это всё выразить вообще не получится.
#291 #394172
Хачкель хоть когда-нибудь обзаведётся нормальной иде?

С нормальным автокомплитом, подсветкой, кликабельной навигацией по референсам, отладчиком с нащёлкивемой мышкой брекпоинтами (ловить IO форс вычисления Lazy и видеть скоуп биндов в монадах). Хотеть всё как в vs + resharper.

Или не в этой жизни?
#292 #394173
>>394172
http://leksah.org/
5 секунд в гугле.
#293 #394174
>>394173
И что там из этого списка есть? Горе-подсветка и вечно-отваливающийся автокомплит? Нахера ты это говно сюда притащил?
#294 #394175
>>394174
Хаскель это тебе не ява. Нехуй на нём бойлерплейты катать с автокомплитом.
#295 #394176
>>394175
Причём тут ява, блядь. Лазить в hoogle (то и дело падающий) на каждый чих в поисках функций?
#296 #394178
>>394176
Скопируй индекс хугла и сделай команду в виме.
#297 #394181
>>394178
а мир ещё не пересобрать руками?
#298 #394298
>>394172
Обваведи, а то чо тут сидишь, как лох.
#299 #394305
>>394298
Я думаю тут нужен какой-то меценат, который вложит пару лямов баксов в проект. После этого к хачкелю потянутся люди и он сможет выстрелить.
#300 #394338
>>394305

>Я думаю тут нужен какой-то инвестор, которому нужно в диком масштабе клепать EDSLчики и который поэтому вложит хоть сколько-то тысяч баксов в проект. После этого к хачкелю потянутся люди и он сможет выстрелить.

#301 #394375
Суп, господа. Скажите пожалуйста, насколько(и чем) хорош хаскель в парсинге?
#302 #394377
>>394375
Если подключишь существующие инструменты лексического анализа, то свой интерпретатор си-подобного языка в 40 строк сделаешь. Если в теории шаришь, ясен пень.
#303 #394378
>>394377

>существующие инструменты лексического анализа


хотелось бы как раз написать свои инструменты лексического анализа, вроде лекса и яка. Насколько хорош для этого хаскель? Я спросил в общем треде, но как-то там мне не сильно хотят отвечать.
39 Кб, 714x515
#304 #394389
>>394378
Ты бы поконкретнее спрашивал. Лексический и синтаксический анализ - немного разные темы. Как правило, лексика ограничивается регулярными языками - самыми простыми в иерархии Хомского - для распознавания которых достаточно конечных автоматов, а вот синтаксис обычно как минимум контекстно-свободный.
http://www.cs.odu.edu/~toida/nerzic/390teched/regular/reg-lang/non-regularity.html
Ну и, конечно же, область применения имеет значение. Если тебе надо работать с лексикой ЯП, вероятнее всего, на выходе ты хочешь получать всякие токены и, следовательно, можешь использовать существующие решения для описания ЯП-лексеров, а вот если тебе нужно нечто более общее, вроде анализа лексики естественных языков, тебе, вероятно, на выходе захочется иметь совсем другие вещи. В этом случае можешь использовать библиотеки описания и манипулирования конечными автоматами.
#305 #394400
>>394389
с языками программирования буду работать. Скорее всего буду писать именно генератор парсеров. Будем считать, что у меня уже есть поток токенов на вход. Интересно узнать, насколько хаскель может в парсинг, есть ли внем что-то, позволяющее упростить эту процедуру?
#306 #394405
>>394400
я бред написал. СИнтаксического анализа, а не лексического. ПРошу прощения
#307 #394409
>>394400
Pattern matching, guards. По-моему всё отлично. Даже короче и яснее должно получиться.
#308 #394436
>>394400
Если ты любитель композабельности и освоишь функторы-аппликативы-монадки ( достаточно будет прочитать http://www.haskell.org/haskellwiki/Typeclassopedia ), тебе понравится подход комбинАторного парсинга: http://en.wikipedia.org/wiki/Parser_combinator
Главные библиотеки:
https://hackage.haskell.org/package/parsec
https://hackage.haskell.org/package/attoparsec (менее гибкая, зато охуенно скоростная)
https://hackage.haskell.org/package/trifecta (по идее, самая гибкая, и наилучшие сообщения о ошибках при парсинге)
Почему-то сейчас не могу навскидку найти хороший туториал - все зашкворные. Проблема в том, что они используют монадический парсинг вместо аппликативного в местах, где последнего было бы достаточно, что, кроме того, что противоречит бритве Оккама, ещё и делает код более многословным. В этой статье эта проблема описана, но она предполагает некоторое знакомство с парсеком: http://robots.thoughtbot.com/applicative-options-parsing-in-haskell
Думаю, лучше всего читать по ней и если что неясно, лезть в другие туториалы, а потом возвращаться и делать как тут.
#309 #394492
#310 #394493
>>394436
Спасибо, обязательно ознакомлюсь.
#312 #394499
>>394497
Он немного прозрачный. Криповато получилось.
#313 #394502
>>394497
Уже началось?
#314 #394513
>>394502
C 15-го числа.
#315 #394987
Посоветуйте проект на Haskell. Чисто почитать, а может и влиться в разработку в будующем.
#316 #394995
>>394987

>будующем


Лол. Русский не родной.
115 Кб, 682x1024
#317 #395400
Кто что может сказать про CloudHaskell aka distributed-process?
sage #318 #395402
>>395400
красивый
4 Кб, 256x256
#319 #395523
Хаскелюги, а что скажете за Rust? Типо безопасность и им мутабельность инклюдед, плюс многопоточность, приемлемая жручесть ресурсов и нет еботы с вводом-выводом. Я, конечно, понимаю, что в этой еботе вся прелесть, но не каждый работодатель будет оплачивать потраченное на неё время.
#320 #395544
>>395523

>но не каждый работодатель будет оплачивать потраченное на неё время


лол
удачи тебе в поисках работы
#321 #395555
>>395523

> но не каждый работодатель будет оплачивать потраченное на неё время.


Я бы даже уточнил: ни один. Если тебе очень повезёт, ты когда-нибудь сможешь найти с ним работу, но там нужно будет сразу всё знать и уметь, а не "согласен изучать".
168 Кб, 800x600
#322 #395572
>>395555
То, что хочет работодатель != то, что получает работодатель
105 Кб, 450x470
547 Кб, 1023x615
681 Кб, 550x550
508 Кб, 899x889
#323 #395576
Сап.
1. Чем рисовать апериодические замещения плоскости?
2. Обычно этническую поеботину рисуют не особо разумные бабы, так что их наверное можно аппроксимировать конечными автоматами. Посоветуй литературу про конечные детерминированные и недетерминированные автоматы, чтобы понять, насколько я (не)прав (найти я могу сколько угодно литературы - но какая нормальная?)
3. Пригодны ли для п. 1, 2 diagrams, ведь объектов даже на среднего размера рисунке дохуища.
4. Насколько геморно может оказаться прилепить гуевину для редактирования таких рисунков - или об этом не стоит и думать?
#324 #395578
>>395576
Тебе в /cs/.
#325 #395602
>>395578
Я имел в виду реализацию строго в рамках haskell, так что нет. Тем более что сюда, бывает, заглядывают умники, более-менее разбирающиеся в нем.
#326 #395603
>>395602
Ну и что? Весь этот тред тоже должен быть в /cs/. К оному не относится только такое программирование на хаскеле, в котором задачки решаются и гостевухи пишутся уже общеизвестными методами.
#327 #396096
https://www.fpcomplete.com/blog/2014/09/hiring-haskell-web-ui-dev

>FP Complete is looking to expand its Haskell development team. We’re looking for a Haskeller with a strong background in web UI development.


>This is a telecommute position: you can work from home or wherever you choose, with little or no travel.


>Skills required:


>Strong Haskell coding skills.


>Experience with creating HTML/CSS/Javascript web applications (fat clients a plus).


>Ideally: experience with both Yesod and Fay for server and client side coding, respectively. (Perk: you’ll get a chance to work with the authors of both tools.)


Пошли работать, борщехлёбы
#328 #396217
Проголосуйте пожалуйcта
http://arhivach.reformal.ru/proj/?ia=707078
#329 #396334
>>395544
>>395555
Бля, я не понял, вы про хачкель? На Rust можно писать быстрый и безопасный код продуктивнее хачкеля, поэтому, например, вангую что со стабилизацией синтаксиса его могут применить где-нибудь в хуяндексе - го там уже используют. Совсем уж оффтоп, но тот же D используют в фейкбуке - к вопросу о спросе на экзотику.
#330 #396346
>>396334
ну так и на хаскеле и на скале и на f# вакансии есть, только тебе просто так туда не попасть
#331 #396383
>>396334

>быстрый


отчего на шатауте бенчмарки у раста неоч?
#332 #396855
>>396383
Вот хз, хз.
https://groups.google.com/forum/#!topic/golang-nuts/NSPcEqhe-8I
У него пока даже синтаксис и архитектура толком не устоялись, основных оптимизаций ещё не было. В будущем должен быть не медленнее c++.
16 Кб, 1486x100
#333 #397750
Охуенно интуитивно, тип "ищи ошибку, лох". Что не так то?
#334 #397755
>>397750

>incorrect indentation


Может это, ты не думал? Я не хачкелист, но сомневаюсь что продолжать выражение manageHook' = ... на другой строке с такой же индентацией корректно.
#335 #397840
>>397750
охлол хачеков унижает даже собственный интерпретатор
#336 #397842
>>397750
Я помню 2 часа ебался, с internal compiler error в гхц 7.4.1, считай, что тебе ещё повезло, лел
#337 #397947
Короче запятая не нужна, лол, хотя понял я это, когда переписал весь конфиг с нуля.
#338 #398036
>>397947
Бгг
#339 #398066
Господа хаскелитсы, приведите пожалуйста пример использования функции addAuthority в модуле Network.Browser.
А то я похоже очень туп.

PS желательно чтобы пример можно было скомпилироватью.
#341 #398433
Как заставить этот ваш ghc показать тип функции во время компиляции?
#342 #398470
>>398433
Зачем? Чем тебя :t в ghci не устраивает?
#343 #398471

>2014


>не узнавать тип наводом мышки

#344 #398475
>>398471

>2014


>пользоваться мышкой


C-c C-t же
#345 #398495
>>374070
Хуясно. Там не матан, а абстрактная алгебра и теория категорий.
#346 #398509
>>398470
Тем, что у меня нет ghci. И компилятора нету. А тип надо узнать.
#347 #398518
>>398509

>И компилятора нету.


На бумажке выводи, ёпта.
#348 #398522
>>398509
Если я правильно понял, тебе нужно что-то вроде этого http://ideone.com/zhxF7c
#349 #398524
>>398509
Или через TemplateHaskell можно сделать.
#350 #398557
Вот сейчас друг из штатов написал. 25 лвл, уже овер 100к баксов в год делает. В Мелкософте. Шарпоблядь.
Вот вам и хачкель, ёптыть, вот вам и матан, нахуй.
#351 #398571
>>398557
А мой друг на коболе зарабатывает нисколько не меньше. И что теперь?
Это ж не повод писать только на недоязычках.
#352 #398624
>>388633
Haskell как язык выучить достаточно легко. Тем не менее, нотация его достаточно гибкая, чтобы выражать в ней многие конструкции абстрактной алгебры. Ей один человек целиком овладеть не может - слишком дохуя всего математики придумали со времён Кантора, да и не нужно это. А вот оставаться в тренде её аспектов, используемых в популярных библиотеках, можно и нужно.
#353 #398629
>>398557
пхд-кун, это ты?
#354 #398664
>>398522
Скорее, что-то вроде этого http://ideone.com/mEls6t
>>398518
Так и придётся. А потом писать рядом и пытаться сконпелировать.
#355 #398676
>>398629
Кто такой?
#356 #398962
>>398676

>>/sci/219935

#357 #398963
#358 #399177
>>398664

>Скорее, что-то вроде этого http://ideone.com/mEls6t


Тогда тебе нужен TemplateHaskell
#359 #399503
>>374025
А как вы ребята ICMP пакеты отправляете, неужели каждый пишет свою версию ping?
#360 #399872
Зацените мое творчество.
Сдается мне оно работает не совсем паралельно.
http://pastebin.com/NXnuJbHf
#361 #399958
>>399872
Ты б ещё на брэйнфаке написал, наркоман.
Родина ему перл дала, а он: Не хочу перл, хочу жрать говно.
#362 #400036
>>399958
Откуда ты знаешь, что я знаю Perl?
И Хаскель - не говно, писать на нем легче чем на перле.
#363 #400078
>>399872

> sequence_ . map f


mapM_ f, например. А вообще юзай пакет async.
#364 #400263
>>400036
В данном случае хаскель - не лучший выбор.
#365 #400389
>>400263
Кстати, а для чего используется Haskell?
ib4: Числа Фибоначчи
#366 #400574
>>400389

>Язык программирования общего назначения.


>Для чего используется?


Даже не знаю...
#367 #400608
>>395523

> Хаскелюги, а что скажете за Rust?


Выглядит как очередной алгол68, думаю таковым и является. Значит, разговаривать нет смысла: старые фичи напихали в алгол, смешали, взболтали и выдают за дохуя инновацию.
#368 #400617
>>400389
Для копипаст и троллинга на двачах.
#369 #400622
>>391194
Сублайм без плагинов.
#370 #400656
>>391194
Использую emacs. Батя доволен, быдло очень боится, тянки тоже.
#371 #400774
>>400389
В фин. секторе активно пользуются.
Даже мне предлагали позицию, но я то знаю этот ваш хачкель чуть больше чем нухуя.
#372 #403219
В хаскеле есть альтернативный синтаксис лямбдам, чтобы не пердолить \х?
#373 #403220
>>400608
а разве в алголе были lifetimes выражаемые через типы?
#374 #403985
Смотрите! Смотрите! Я сделал задачу про Snowflake Fractal из Haskell School of Expression!
Ну разве это не охуительно?
http://pastebin.com/8EDsDXG4
#375 #404127
>>403985
такой нубский код
#376 #404173
>>396096

>haskell-web-ui-dev


а чо бы не на брейнфаке
#377 #404490
>>404127
Кто бы сомневался. Это ж первое задание. Каким может быть код после первого задания если не нубским?
Кстати, гуру, запостите, пожалуйста своё решение задачки. Хочу посмотреть на код мастеров.
#378 #404571
>>399872
Собирай свои монадки и проваливай.
Ньюфаг #379 #404638
Подскажите, как на хаскелле взять все введённые в stdin числа и сложить?
#380 #404646
>>404638
print . sum . map read . lines =<< getContents
#381 #404654
>>404646
Хмм... Так в хаскелле всё справа налево записывается?
#382 #404660
>>404654
Тот же принцип, что и в других языках:
print(sum(map(read(),lines(getContents()))));
#383 #404666
>>404660
Ну в сцале я писал что-то вроде
getContents().lines().map(read).sum
#384 #404697
>>404666
flip (.)
@
flip ($)
.jpg
#385 #404707
>>392980

Но у меня нет опыта с императивными язычками.

Успешный Haskell-кун
#386 #404718
>>404707
толсто
#387 #404719
>>404718

ньюфажек не палится
#388 #404734
>>404707

>Успешный Haskell-кун


Насколько успешный?

>>403219

>чтобы не пердолить \х?


А что плохого-то в лямбдах? Может ты не там их используешь и можно что-то другое впердолить?
#389 #404742
>>404734
Ничего плохого, я не об этом.

>альтернативный синтаксис для лямбд


же
#390 #404765
>>404742
Зачем? Синтаксис и так элементарный.
#391 #404771
>>404765
Двачую этого, в хаскеле самый чистый синтаксис для лямбд.
#392 #404834
>>404771
Хуёвый там синтаксис, этот обратный слеш - полное говно, некрасиво. Плюс хорошо бы для них иметь автоматическую аппликацию (возможность не писать иногда доллар), как в раби когда они идут последним аргументом.
2 Кб, 100x167
#393 #404841
>>404834

> обратный слеш - полное говно, некрасиво


Нормальный слеш.
#394 #404889
>>404834

>хорошо бы для них иметь автоматическую аппликацию (возможность не писать иногда доллар), как в раби когда они идут последним аргументом.


ну накидай синтаксис, как это должно выглядеть
#395 #404892
>>400608

>Выглядит как очередной алгол68, думаю таковым и является.


Не думай, у тебя плохо получается.
#396 #405476
Обновил ghc, перестал собираться пакет download. Я скачал себе исходники, исправил ошибку, что теперь в cabal напиать чтобы мой пакет подхватил исправленный download.
Понимаю, что вопрос глупый. Но просьба сильно не пинать.
мимогумманитарий
#397 #405477
>>405476

>что теперь в cabal напиать чтобы мой пакет подхватил исправленный download?


selffix
#398 #405592
>>405476
cabal install %путь-к-cabal-файлу-исправленного-пакета%
вроде так
#399 #405815
>>399872
Продолжаю свои изыскания.
я понимаю, что perl или может bash больше подходит, но ведь надо ж с чего то начинать
Итак, я выкатил новую версию - "http://pastebin.com/ScEbTvDT . Что она делает?" - спросите Вы. А делает она много чего:
1. Берет список картинок с сервера
2. Проверяет доступность камер
3. Если камера доступна, то проверяем изминилась ли картинка с прошлого запуска.
4. Если не изменилась, то перезагружаем камеру.

Ну на самом деле, я думаю что она так работает, есть подозрение что она творит какуюто херню А что думаете Вы?
#400 #405855
>>404834

>обратный слеш


https://github.com/enomsg/vim-haskellConcealPlus
https://github.com/i-tu/Hasklig
Может пригодится.
105 Кб, 530x816
#401 #406331
Здравствуйте! Это снова я (>>403985-кун). Мне нужна помощь. В указанном коде (http://pastebin.com/8EDsDXG4) есть такое выражение
k <- getKeyEx w True
--->if k == ' '
------->then closeWindow w
------->else spaceClose w
Оно закрывает окошко по нажатию пробела. Я хотел бы сделать так, чтоб оно закрывалось при нажатии Esc, но у меня ничего не получается. Я пробовал заменять условие на k == '\0x1b' и на k == (fromEnum 0x1b)[b/], но эти варианты не сработали, окошко закрываться отказывается. Помогите, пожалуйста, подскажите, как сделать так, чтоб окошко закрывалось при нажатии эскейпа.
Госпожа авансом.
#402 #406343
>>406331
http://pastebin.com/cUmap2iS Пофиксил, в принципе ничего сложного.
#403 #406349
>>406331
Попробуй \ESC
#404 #406353
>>406349
Нет, не работает, окошко не закрывается.
#405 #406768
>>406331
Ну дык помоги те же, пожалуйста!
#406 #406769
>>406768

>Ну дык помогите же, пожалуйста!


Фикс. Блин, я не понимаю, как я мог так лажануть.
#407 #406932
>>406769
This paste has been removed!
#408 #406942
>>406769
Вангую что проблема не в твоем коде, а в SOE, который для чего-то выходящего за границы заданий в книжке не предназначен. Посмтори исходники SOE, может можно легко поправить.
#409 #406952
>>392980
Готов опровергнуть. Писать на Хаскеле заметно дольше. Но результат заметно структурированнее и чище. Это заметно по хаскельлибам - пользоваться ими гораздо приятнее, чем любым императивным говном. Они понятнее, структурированнее, логичнее, проще интегрируются, в них меньше неожиданностей и ебли со всякими скрытыми нюансами. Но для создания такой библиотеки требуется очень много усилий. Я думаю, преимущества Хаскеля заметны на крупных проектах, когда императивная лапша превращается в рассыпуху логики по сотням классов с кучей багов, и на простейшие модификации уходит уйма времени, просто протому, что очень сложно разобраться в таком объёме говнокода. Большинство саксесс-стори, которые я слышал про Хаскель, сводились к тому, что люди писал-писали на каком-то императивном говне, дохуя написали, сами охуели от сложности поддержки написанного, поэтому написали на Хаскеле DSL, после чего жить им стало лучше.
#410 #407016
>>406331
x1b же.
И кстати
bump <- >>405815
#411 #407017
>>392655
Для вебкраулеров питон самое оно. Что собираешь кстати?
#412 #407018
>>407017

> Для вебкраулеров питон самое оно


Почему?
#413 #407024
Котаны, мне хочется накатать desktop environment для швабодки. Минималистично, сразу под вяленого, без всякой хуиты типа задротских фреймов, гномшеллов для имбецилов и попыток закосить в очередной раз под винду. Самое сносное чем можно пользоваться, как мне видится - xfce. Но его никто не развивает совсем. Да и кривости есть. В сиговно лезть совсем не хочется, попробовал-проблевался уже, поэтому хаскель. Основа gtk, максимальный упор на скорость с достаточно простой визуальной составляющей, обычное меню запуска эпохи гнума2, +свои нововведения допиливающие гнум2/xfce до идеала (множество полезных десктопных мелких фич вместо криативнасти и адаптации под планшеты).

Взлетит? Нужно такое?
sage #414 #407026
>>407024

>мне хочется накатать desktop environment


Похвальное желание.

>для швабодки


Ой, ещё один мертворожденный велосипед. Сдохни, сука ебаная.

>xfce


А это что ли не закос под виндовс 95? Кто им в 2014 пользуется кроме великовозрастных маразматиков? Или у тебя компьютер офисный 2005 года выпуска?

>В сиговно лезть совсем не хочется, попробовал-проблевался уже, поэтому хаскель.


Ой, только два языка программирования знает. И выбрал один из самых уёбашных.

>Основа gtk


Ой иди на хуй.

>максимальный упор на скорость с достаточно простой визуальной составляющей


Ой иди на хуй, иди на хуй, минималист.

>обычное меню запуска эпохи гнума2, +свои нововведения допиливающие гнум2/xfce до идеала (множество полезных десктопных мелких фич вместо криативнасти и адаптации под планшеты)


Я даже не знаю как комментировать этот бред.
#415 #407107
>>407026
Лол. Неудачный день был? Давай ещё раз и более внятно.
sage #416 #407111
>>407024

>В сиговно лезть совсем не хочется


>Основа gtk


ну просто лол
#417 #407112
>>407024
Оконных менеджеров под прыщеось как говна. Свой desktop environment ты писать заебешься, да и зачем это нужно, если можно сложить отдельные компоненты во что захочешь.

>но его никто не развивает совсем. Да и кривости есть.


А чо там нужно развивать? Какие кривости?

>упор на скорость с достаточно простой визуальной составляющей, обычное меню запуска эпохи гнума2


90% оконных менеджеров в репо. Просто поставь openbox.

>свои нововведения допиливающие гнум2/xfce до идеала


>множество полезных десктопных мелких фич


Ты пока ни одного примера не привел.
#418 #407113
>>407111
Биндинг есть же. Или ты мне предлагаешь за одно и ведро ОСи переписать?
#419 #407124
>>407112

>можно сложить отдельные компоненты во что захочешь


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

>Какие кривости?


Выглядит как топорное говно. gtk2. Компоненты панели размещаются как говно. Конфиги не могут нормально становиться общими в /etc.

>90% оконных менеджеров в репо


Там в основном всякие фреймовые менеджеры, якобы что-то там ускоряющие, на деле засирающие мозг ещё 500 сочетаний клавиш. Остальное - что нужно обрезано, что не нужно добавлено в конских количествах.

>фичи


1. вяленый (ну правда, оче хочется). Соответственно это означает все визуальные вкусности и приятности opengl. Нормальное переключение пользователей, нормальная заставка.
2. сеточный alt+tab. Часто используемые приложения ближе к центру, выбор всеми 4 стрелками.
3. произвольный layout в панелях задач, с разбиением на ячейки. Например часы могут занимать в разных вариациях 2x2, 4x2, 8x5. Произвольная форма панели. Нормальный набор виджетов, каждый в нескольких вариациях размера и вида.
4. нормальный автофит окон на стандартные области в полэкрана/четверть экрана (в зависимости от размера монитора набор областей разный). без распидорашивания позиций и размеров.
5. скрывающаяся панель без уёбищного торчащего бортика.
6. обычный виндовый буфер обмена по ctrl+c ctrl+v
7. допиленые kiosk и xfconf. Для ограничения и настройки всего что связано с DE, а не пары элементов.

Скорее такая работа над ошибками в xfce с добавлением нормальной композитности.
76 Кб, 626x449
#420 #407137
>>407107
Во-первых забудь это ебучее слово "минималистично", "минимализм". Минимализм это направление в искусстве, им пользуются художники, дизайнеры, музыканты, в общем те, кто производит контент, который нужно смотреть глазами или слушать ушами, но не интерактивный. Это понятие не применимо для разработки софта. Максимум что может означать минимализм в софте — это отсутствие сложных декораций в UI. Всё. В этом плане минималистично что угодно кроме, например, пикрелейтед. Нутыпонел.
Обычно про софт говорят что он "минималистичный", если он:
1. Не реализует весь необходимый функционал.
2. Не продуман, компоненты плохо интегрированы, интерфейс требует долгого изучения.
3. В целом недоделан и кал.
Если целевая аудитория — обыватели, то кусок говна обзывают "минималистичным". Если более-менее искушенные, то говорят что это "KISS". Если ЦА — прыщебляди, то гордо объявляется, что поделка выполнена "в духе unix-way".
#421 #407138
>>407137
Хорошо. Быстрый, не тормозной. Машина и правда уже старовата, бубунта была в своё время снесена именно из-за страшных лагов и потребления памяти/процессора. Мне не хочется тратить ресурсы даже самого мощного пека на неизвестно что.
#422 #407147
>>407137

>Обычно про софт говорят что он "минималистичный", если он:


>1. Не реализует весь необходимый функционал.


>2. Не продуман, компоненты плохо интегрированы, интерфейс требует долгого изучения.


>3. В целом недоделан и кал.


иди нахуй, еблан
минимализм - это хорошо: лишняя хуйня не нужна, лишняя сложность не нужна, лишняя общность не нужна
и вообще всё должно быть как можно проще, но не проще
#423 #407148
>>407138
так а ты пробовал другие wm перед тем как делать свой? я слышал blackbox неплох
и потом имей в виду - вся хуйня kde и gnome тебе потребуется для запуска приложений под них
#424 #407149
>>407124

>1. вяленый


чё за вяленый?

>нормальная заставка.


нескучные обои

>2. сеточный alt+tab. Часто используемые приложения ближе к центру, выбор всеми 4 стрелками.


хуита, фишка alt+tab в быстроте, а ты со своим "часто используемые" соснёшь хуйца - я гарантирую это

>3. произвольный layout в панелях задач, с разбиением на ячейки. Например часы могут занимать в разных вариациях 2x2, 4x2, 8x5. Произвольная форма панели. Нормальный набор виджетов, каждый в нескольких вариациях размера и вида.


виджеты не нужны

>4. нормальный автофит окон на стандартные области в полэкрана/четверть экрана (в зависимости от размера монитора набор областей разный). без распидорашивания позиций и размеров.


это всё лишнее - хватит деления экрана на два по горизонтали

>5. скрывающаяся панель без уёбищного торчащего бортика.


это чо ваще?

>6. обычный виндовый буфер обмена по ctrl+c ctrl+v


тут соснёшь хуйцов со своим хакселем

>7. допиленые kiosk и xfconf. Для ограничения и настройки всего что связано с DE, а не пары элементов.


аналогично
#425 #407171
>>407148
>>407149

>другие wm


>blackbox


>чё за вяленый?


>нескучные обои


Wayland. Заставка это не картинка, а скринсейвер и блокировка сессии с требованием пароля. Проблема в первую очередь в иксах, с ними нельзя сделать хорошо и бесшовно. Останется та же моча с ctrl alt F. Хочется красиво и аккуратно. С вейлендом есть только акулы gnome и kde, облегчённых DE не завезли.

>фишка alt+tab в быстроте


Да. Только обычно тебе приходится листать по списку в 2х направлениях, а здесь по сетке в 4х.

>часто используемые


Нахуй не нужно.

>виджеты не нужны


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

>хватит деления экрана на два по горизонтали


По вертикали тоже удобно. Но я хочу добавить свободную блочность: настрой как тебе нравится, примерно как в блендере это делается, split+join.

>соснёшь хуйцов со своим хакселем


Что помешает-то?
#426 #407214
>>407016
Я тебя не понимаю, куда это x1b вставлять?

>Not in scope: `x1b'


Без нуля спереди хаскель считает, что это имя.

> Syntax error on 'x1b'


В одинарных кавычках тоже не принимает.
#427 #407229
>>406331>>407214>>406331
\x1b ну что ты совсем то
#428 #407232
>>407214
Вероятно имеется в виду '\x1b'. Без нуля.
#429 #407237
>>407232
>>407229
Не работает. Походу что с нулём, что без него - одна хрень.
#430 #407243
>>407237
http://pastebin.com/mUX841Au
Я бы тебе скринов наделал, но мне лень.
Попробуй SOE обновить что ли.
Я нашел значение добавав BS.writeFile '1.txt' k, после чего проверил 1.txt hexdump'om. Стоит добавить, что у меня Linux. Возожно дело в этом.
#431 #407249
>>407243
Понятно. У меня либо хаскель деффективный, либо сое, либо винда.
#432 #407256
>>407249
Попробуй моим способом, судя по коду там не нажатие клавиши детектится, а введенный символ. Поэтому возможно дело в кодировке.
#433 #407259
>>407256
Извиняюсь за нубский вопрос, но я не понимаю, как преобразовать k к нужному символу, чтоб код нажатой клавиши там был.
Так не работает "BS.writeFile "1.txt" k":
Couldn't match expected type `BS.ByteString'
with actual type `Char'
In the second argument of `BS.writeFile', namely `k'
In a stmt of a 'do' block: BS.writeFile "1.txt" k
И так не работает " BS.writeFile "1.txt" $ fromEnum k":
Couldn't match expected type `BS.ByteString' with actual type `Int'
In the second argument of `($)', namely `fromEnum k'
In a stmt of a 'do' block: BS.writeFile "1.txt" $ fromEnum k
#434 #407264
>>407249
import Data.ByteString.Char8 as BS

spaceClose w = do
k ← getKey w
BS.writeFile "1.txt" $ BS.singleton k
...
#435 #407265
>>407264
Хотя я уверен, там будет
0000000 001b
0000001
7 Кб, 703x713
#436 #407267
>>407265
Внезапно!
Впрочем я сделал сравнение с нулём, и это тоже не помогло. Ладно, пофигу; пока изучаю книгу, мне и пробела хватит, а потом буду уже полноценные библиотеки использовать.
#437 #407270
>>407267
Скинь файлик
#440 #407275
>>407272
На WinXP я вообще никаких фракталов не вижу. Как компилируешь?
#441 #407276
>>407275
Сейчас там не фракталы, а цветные круги, следующее упражнение из книги.
Запускаю в интерактивном режиме:
ghci -iSOE/src
затем загружаю файл:
:load qwert
запускаю:
main
Кстати, у меня изначально не работала функция getKey (даже с пробелом), следуя советам из гугла я нашёл модуль, в котором была getKeyEx, и добавил её в список экспортируемых функций.
#442 #407298
>>407276
Что за книга, если не секрет
Читал треад, видимо жопой, не нашел
770 Кб, 717x948
#443 #407301
sage #444 #407446
>>407147

>лишняя хуйня не нужна, лишняя сложность не нужна, лишняя общность не нужна


У нормального человека бывает и лишняя, а бывает и не лишняя. У шкальника-максималиста всё всегда не нужно.

>всё должно быть как можно проще, но не проще


Так проще или не проще? Посиди в ридонли, пока не подрастешь и научишься ясно излагать свои мысли.
#445 #407447
>>407024
Припиздячь хоть как-то хмонад к вяленому, склепай пару утилит для интеграции приложений, автоконфигурирования или еще какой-нибудь похожей ДЕ-поеботы, чтобы потом это можно было бы использовать не только в твоих наколенных поделках - и будет самое заебись.
#446 #407474
>>407137

>им пользуются художники, дизайнеры


Будто проектирование UI не считается дизайном. Статьи в википедии про это нет, потому что сложные пользовательские интерфейсы появились не так давно. Само понятие, при этом, прекрасно описывает суть.
#447 #407475

>Обычно про интерфейс говорят что он "минималистичный", если он:


>1. Реализует только необходимый функционал.


>2. Хорошо продуман, компоненты надежно интегрированы, не требует изучения.

#448 #407493
и сразу фича реквест: переход по окнам через фазисёрч как ctrl+p в сублайме
#449 #408356
Посоветуйте что можно написать на хаскелле, чтобы хорошо его понять? Желательно какой-то список.
#450 #408360
#451 #408363
>>408360
>>408361
воу воу полегче, мне ж не диплом потом с этим защищать. Я с таким подходом к языку даже и не прикоснусь за несколько месяцев изучения теории.
#452 #408672
>>404654
Можно и слева направо:
[code]
import Control.Arrow
getContents >>= (lines >>> map read >>> sum >>> print)
[/code]
#453 #408673
>>408356
Напиши двусвязный список.
#454 #408696
>>408356
Напиши какой-то список
#455 #408846
Угнетает отсутствие вменяемой идэе под винду. Пробовал лексах - невозможно работать. Пробовал прикрутить вим и емакс - под винду все это не работает. Сейчас страдаю в ЭклипсФП, то еще говно - но кое-как работать можно. Почему блять нет простого нормального инсталлятора того же эклипса или вима со всеми нужными плагинами
39 Кб, 604x313
sage #456 #408927
#457 #408940
>>408356
Напиши Вульфенштайн 3Д как Кармак.
1 Кб, 393x64
sage #459 #409275
>>409273
обоснуй
алсо, аргументируй
sage #460 #409281
>>409275
хаскелл - лучший императивный яп!
http://ideone.com/bbdLAk
ХЯСЛЕКК-OLIMPIADKA sage #461 #409289
1. написать правую свёртку используя только левую свёртку
2. написать левую свёртку используя только правую свёртку

гугл низя!
3071 Кб, 300x301
sage #463 #409294
>>409292
и чо
#464 #409386
>>409289
1)
записываем foldr через foldMap
fldr f z xs = appEndo (foldMap (Endo . f) xs) z
fldr :: Foldable t => (a1 -> a -> a) -> a -> t a1 -> a
преобразуем моноид в дуальный:
fldl f z xs = appEndo (getDual (foldMap (Dual . Endo . f) xs)) z
fldl :: Foldable t => (a1 -> a -> a) -> a -> t a1 -> a
сигнатура неправильня - флипанем f
fldl f z xs = appEndo (getDual (foldMap (Dual . Endo . flip f) xs)) z
fldl :: Foldable t => (a -> a1 -> a) -> a -> t a1 -> a
заменяем foldMap на foldr
fldl f z xs = appEndo (getDual (Prelude.foldr (mappend . Dual . Endo . flip f) mempty xs)) z
fldl :: (a -> a1 -> a) -> a -> [a1] -> a
упрощаем
fldl f z xs = (Prelude.foldr (flip (.) . flip f) id xs) z
готово
2) это невозможно
#465 #409388
>>409386
Длядь, т.е
1) это невозможно
2) мое решение
158 Кб, 650x975
sage #466 #409396
>>409388

> это невозможно


лиуоул
http://ideone.com/8VZuCy

теперь давайте напишем инстанс монады для массива
#467 #409430
>>409396
Ебать ты тупорылый.
http://ideone.com/rPtZzR
270 Кб, 1625x2400
sage #468 #409437
>>409430
ща поправлю
#469 #409608
Скомпилил программу с зависимостью от libffi.so.6, возможно понизить зависимость до libffi.so.5?
#470 #410370
>>409608
Втупую запилить окружение для сборки с нужной версией нельзя?
Попробуй чисто для лулзов запилить симлинк от библиотеки пятой версии к шестой.
Почитай чейнджлог - если все кардинально переделали, вряд ли получится заменить "по-горячему".
#471 #413979
http://ideone.com/5b75dj
Оцените мой фибонач.
12 Кб, 780x134
#472 #414882
Ребятки, поясните, что там со скоростью выполнения программ на Haskell. В интернете противоречивые мнения, о чем свидетельствует пикрилейтед. Кто-то пишет, что простые вычисления выполняются долго, но если выставить при компиляции некий флаг -O2, то все ускоряется. Для того, чтобы получить приемлемую скорость выполнения, нужно обладать глубочайшими познаниями языка или же достаточно правильных опций при компиляции? Судя по бенчмаркам, не такой уж он и медленный. Алсо куда подсовывать этот O2, если я использую cabal?
1 Кб, 494x35
sage #473 #414887
>>414882
можно ещё в начале исходика в прагме
sage #474 #414888
>>413979

>(1 / sq5)


фибонач-хуйняч
sage #475 #414891
>>414888
алсо неправильно считает
http://ideone.com/uUEpCa
алсо:

>1488


збс
sage #476 #414893
>>414891
расово верные фибана4и без байто-приблуд
https://ideone.com/1NutLL
#477 #414952
>>414882
Всё нормально со скоростью, но есть свои тонкости. И по памяти, и по цпу.
#478 #416037
бамп
#479 #418162
Есть ли под ваш Haskell менеджер пакетов/зависимостей?
#481 #418221
>>418170
Не годится же
http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager/
Я даже чужое поделие с гитхаба охуел с этим кабалом собирать.
#482 #418222
>>418221
Поделиепроблемы. Ваня пусть идёт нахуй. Ты тоже.
27 Кб, 604x321
#483 #418439
http://dxdy.ru/topic87792.html

Порватки, если уж вы собрались разносить в говно императивных чепушей, то хотя бы строго излагайте свои мысли и разбивайте текст на абзацы. Чтобы вас хотя бы не банили за "пздц бред пишеш))))".
86 Кб, 604x432
#484 #418440
>>418439
http://dxdy.ru/topic87793.html
А он поначалу неплохо доминировал ЧСВшных питушков...
#486 #418854
>>418818
Динамическая типизация не противоречит ФП и меньше всего ограничивает разработчика → лучше всего подходит для создания прототипов.
Статическая типизированные языки никогда не будут востребованы более того, как они востребованы сейчас.
#487 #418855
>>418854
Динамическая типизация менее выразительна, потому что в ней есть только рантаймовые теги. В статике можно диспатчиться и по статическим тегам в компайл-тайме, и по динамическим в рантайме, а значит в статике выразимо большее количество программ. Следовательно, статическая типизация даёт разработчику больше свобод: во-первых, ему не надо вечно следить, не подкрадывается ли к анусу дилда, во-вторых, он может написать больше разных программ, и это всё не говоря уже об абстракции и прочих профитах типизации. Из этого всего следует, что статическая типизация лучше подходит для всего - и для прототипов в том числе.
#488 #418856
Динамическая типизация позволяет разработчику написать подмножество бессмысленных программ, которые всё-равно не будут работать (те, которые бы не тайпчекнулись в статике), но запрещает писать подмножество осмысленных программ, в которых часть динамической семантики определяется исходя из диспатчеризации по статическим типам.
#489 #418952
>>418856
Андрюша глупость сморозил.
#490 #419271
>>418952
Динамический петушок закукарекал.
#491 #419326
>>419271
как обидно-то. зачем ты так?
#492 #419665
Хаслелеебы, а язычок-то ваш даже в Украшке выбыл из топ-15.
http://dou.ua/lenta/articles/language-rating-jan-2014/?from=doufp
#493 #419696
>>419665
Наверное, все хаскелеебы поехали пердолиться в АТО.
sage #494 #419703
>>419665
в украине щас вобще неспокойно..
sage #495 #419708
>>419665
Кризис. Мамкам больше не на что готовить борщ вот они все и подохли.
#496 #419729
>>419665
Почему для хачкеля не указан уровень удовлетворенности?
#497 #419764
>>419665
ЧСХ первые 10 ЯП из граф "на чём пишете" и "на чём хотели бы писать" не отличаются. Выучил джяву, работаю на джяве, люблю джяву, умру с джявой...Синдром утёнка какой-то.
#498 #419838
>>419764
Джава лучше всех, очевидно же. Монадки в реальном программировании нахуй не нужны.
#499 #419844
>>419838
Не передёргивай. Джава — переоценённое говно.
#500 #419846
>>419844
Джава - как платформа - позволяет быстро и решительно решать задачи. То, что джавакод "недостаточно выразителен" по мнению отдельных энтузиастов ФП, не интересно никому кроме энтузиастов ФП.
#501 #419848
>>419846
«Джава как платформа» ≠ «джава как язык».
Я писал про язык. Платформу можно использовать и с другими языками (Clojure, например, ну или этот ваш Scala).
#502 #419852
>>419848
А я имею ввиду язык (и ИДЕ для него) как часть платформы. Джава-язык позволяет фигачить код с огромной скоростью после минимального обучения. Всякие скалы-кложи времени на обучение потребуют больше, а профита кроме "выразительности кода" не дадут.
#503 #419856
>>419846

>Джава - как платформа - позволяет быстро и решительно решать задачи.


Быстро решительно съебал отсюда, толстяк.

>фигачить код с огромной скоростью


а ещё быстрее говно на выброс можно на питоне или пхп фигачить.
#504 #419859
бамплимит
#505 #421475
Тред утонул или удален.
Это копия, сохраненная 25 января 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски