Покойный старина Неш благословляет этот тред.Литература:learn haskell for a great goodдокументация.
>>916056 (OP)я учил его хуйню на теории игр, ехал головой и понимал это дерьмоа теперь я жалкая веб-макака, мне очень стыднокто-нибудь, утешьте меня
>>916056 (OP)Хули такая скудная шапка, а, ПИДР?Вот нормальный список литературы:Basics - http://learnyouahaskell.com/chaptersMedium - http://book.realworldhaskell.org/readConcurrency - http://chimera.labs.oreilly.com/books/1230000000929/index.htmlWeb - http://www.yesodweb.com/book
>>916164 Ждал тебя золотце потому что.
Зачем ирл может быть нужен хачкиль, кроме как для развлечения нескучным синтаксисом?Для всякой паралельной еботы и веба есть эрланги с элексирами.Для всякой требовательной к перформансу (не хард риалтайм конешно) еботы есть окамл (для некрофилов есть всякие диалекты sml-а, причем даже без сборщиков).Для совсем низкоуровенного говнища с байтами и кишками есть руст.Для всевозможной ебли с пруфами, завтипами и прочей ебатой про корректность есть идрис, агда, коки и др.
>>916195> низкоуровневое говнище с байтами> RustСерьезно?
Просто оставлю здесь мнение байтоеба с васма о хаскеле.http://ziyoumin.livejournal.com/673.html
>>916206А в чем я не прав-то? Язык про то, как бы безопасно юзать ссылочки ублажая компилятор. Все страдания и болевые порывы там только от его цели.
>>916207>ленивость вычислений дает порой дикий прирост к производительности по сравнению с тем же си и даже асмом - реально что-либо вычисляется только в случае необходимосте.Интересный байтойоб. Что чаще происходит обратное при простейших аллокациях, или эти деревья в 2-1 строчки будут в десяток раз медленнее его варианта даже не задумался. хотя судя по тому что "он с васма" это очередной пейсатель троянов и кряков, чему удивлятся. Еще кстати порадовало "все функции принимают только один аргумент".
>>916214У него там еще запезь шикарная:Почти всегда разговор с девушкой - это трёп, лишенный всяческого смысла. Вчера, нопример, спорел с одной из представительнец противоположного пола. Получилось чото типа:Я: - блаблабла почти всегда блаблаблаОна: - ПОЧТИ!!!11одинодин А значит не всегда.Вот тут и происходет наёб, "почти всегда" превращается в "не всегда". Вроде и мелочь, но если прикинуть, то серъезная подмена понятий. "почти всегда" - это "почти в 100% случаев", то есть в 100%-Х% случаев, где Х<<50%. А вот "не всегда" может быть сказано и при 1% и при 0,000001%, вобщем если есть хотя бы один прецендент.Ну и железное возражение девушке:Я: - "почти всегда" - далеко не то же самое, что "не всегда"Она: - думай как хочешь.
>>916056 (OP)Наконец-то единственный годный тред в этом разделе.
>>916195Для изучения функционального программирования в правильном его виде.
непроебамп
>>916195> эрланги с элексирами.Динамика сакс.
>>916328Лул, ебать довен.>>921276Если пишешь для себя — то, конешно, да. Если это какая-то реальная работа где нужно успевать делать хуяк-хуяк и трясти деньги с инвесторов и пользователей раньше конкурентов — ниет. Ну разве что позволяющие делать хуяк-хуяк вроде окемла.
>>916214>все функции принимают только один аргументНе понял. Разве нет? a -> a -> a это не a -> (a -> a)?
https://stepik.org/course/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0-%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5-Haskell-75/ Welcome!
>>916214>все функции принимают только один аргументШто не так?
>>921934>>921628Ты долбоёб прост
>>921970HaskellWiki: "In Haskell, all functions are considered curried: That is, all functions in Haskell take just one argument"Так что пройди нахуй.
>>916056 (OP)блин, как же хочется изучить хаскель. Слыхал, это делается всего за месяц, можно сделать одно маленькое приложение на хаскелле и всякие гуглы-яндексы тебя с руками оторвут.
>>916195Для описания сколь-нибудь сложных предметных областей. Также склоняюсь к тому что скала нужна для этого же (особенно если есть зависимость на jvm). То есть для 90% проектов использование этих языков несет только лишние риски, как кстати и использование эрланга, смлей и раста, хотя и для них есть определенные области применимости.мимоскалаёб
>>923468>как кстати и использование эрланга, смлей и раста, хотя и для них есть определенные области применимости.У них-то они есть, а вот у хачкеля — нет. Вот вообще. Он прожорливее жавы (от гц до процессора, быстрый код кроме как хеками с ffi не пердолится), паралелится хуже эрланга (и хуяк хуяк для продукшина не сделоть), заметно медленнее того же окемла (например парсеры — посмотри сравнения любого menhir/camlp4 с каким нибудь атоопарсеком — там отсос в десятки раз везде). Да блять, в и из окамла хоть можно туда сюда экстракить всякие коки и получать верифицированный кодес, а тут...
>>925394Avoid Success at All Costs as it is.
>>925394Ты просто не осилил.
Что скажите за язык Clean и его, кхм, альтернативу монадам?
>>925394Все таки у хачкеля нашлось одно применение: быть моделью для более современных языков.Пюрэ и эльм по-своему взяли из него все самое лучшее, давая возможность вебмакакам писать супернадежный фронт(а пюрэшку я сейчас и для бэка начинаю использовать).
>>916195Хаскель нужен только для того, чтобы программировать на нормальном языке.И да, всё тобой перечисленное глотает пыль на обочине, кроме пруфассистантов. Но Хаскель как бы не пруфассистант и не конкурирует с ними.
>>916195Хаскель - это как марксизм-коммунизм, хорош на бумаге. Учебники почитать, пейперы, тайпклассопедию, на форумах попиздеть, на конференциях повыступать - лучшая область применения хаскеля. Предел его возможностей - библиотекописательство, причём либы должны быть максимально оторванны от конкретных задач, даже от областей - чем дальше тем лучше, чтоб мерзкий контрреволюционный realworld не засырал прекрасный алгебраичный и стройны гаскиль-код. Но на этом всё. Написание на нём конкретного кода конкретного приложения или фреймворка, и жизнь с этим добром в продакшене - это область где хаскель проигрывает почти всему мейстриму и даже не мейнстриму, и именно поэтому на хаскеле СОФТАТОНЕТ и НЕБУДЕТ. Щутка, это всё из-за заговора корпораций.
>>928298Вы прослушали мнение человека, не осилившего Хаскель.
все до чего добираются матанопетухи превращается в говно
Я чот таки не могу осилить монады. Монады это тупо контейнер для взаимодействия с внешним миром, где все идет по порядку? Это типа шлюза в космическом корабле? Космонавт, когда надо выйти в открытый космос вне корабля, он:1. Открывает люк, определим его как первый. 2. Переходит в шлюзовую комнату. 3. Закрывает первый люк.4. Открывает люк выхода из космического корабля, можно определить как второй.5. Выходит в открытый космос. Впрочем, нашел и такое:Поэтому необходима принципиально новая система шлюзования, исключающая неоправданно сложную систему замков шарниров и резиновых прокладок. Новый шлюз должен состоять из трёх стенок расположенных друг к другу под углом 120о и закреплённые на одной подвижной оси. Космонавт располагается между двух стенок и закрепляется фалом. После этого производится поворот системы на 180о и космонавт оказывается в открытом космическом пространстве. Затем он покидает шлюзовую камеру и по специальным трапам из скоб перемещается на внешний корпус корабля или станции, используя систему фалов, скоб и зеркальце. Стенки шлюза должны быть прозрачными, что необходимо для правильного психологического настроя перед выходом. Так же внутренние стенки шлюза должны быть покрыты специальной мягкой, не обязательно прочной, оболочкой. Между оболочкой и внутренними стенками шлюза можно подавать воздух или какой-либо другой газ для комфортного выталкивания звездоплавателя в космос. Данная схема обеспечит надёжное шлюзование космонавта, проста в эксплуатации и легко ремонтируема. Она устойчива к внешним и внутренним перепадам температур и давления, а так же не подвержена деформации. Альнитак. Екатеринбург. 14.10.2009Источник: http://volna56.narod.ru/shluz2/shluz4.htmЗачем я это написал?
>>928333Всё, что делают инженеры - унылое говно, особенно, когда они пытаются показать своё знание математики
>>928328Ну так запости ссылочку на гитхаб на свои восхитительные проекты на Хаскеле, осиливший.
>>928328>Вы прослушали мнение человека, не осилившего труды Карла Маркса в оригинале
>>928347ну так выкинь свой компуктер в окно и кресло на котором сидишь заодно и пиздуй жить в пещеру там будешь заниматься систематизацией и формал сцайнсом, для этого достаточно иметь палку-ковырялку и на чём ей царапать
Посоны, мечтаю упороться хаскелем, тк его советуют всем ньюфагам, типа работы дохрена, зп высокие, вкатиться проще некуда. Как мне упороться хаскелем и не сойти с ума?
А давайте я закачусь в тред с обоснованной критикой хаскеля и почему его не используют?Ленивость. Каждая лекция о хаскеле содержит детальное разъяснение как оно внутри считается и разворачивается. И хаскелята друг дружку унижают за незнание точного порядка ленивой эвалюации произвольного выражения. Всё бы с ней ничего, но наступает потребность написать производительную реализацию чего бы там ни было. И здесь начинаются пляски с выбором fold, подстановкой seq и прочим дерьмом. Сортировочка с глагне выглядит хорошо, но крайне неоптимальна.Сборка мусора, ебля с боксингом-анбоксингом, полный ворох проблем. А ведь так хорошо начиналось, нас кормили обещаниями что компилятор ну очень умный и всё соптимизирует за нас. Как бы не так. Когда приходит время выебать байты всю красоту куда-то сдувает, подключается ещё больше распорок из ghc и мы пишем уже почти как на си.Пересборка мира на каждый чих. Неспособность нормально формировать dll. Cabal hell с постоянно ломающейся совместимостью пакаджей. Здесь мощь абстракций ударила обратной стороной.Теоркат требует охуительной подготовки. Большинство хасклят нихуяшеньки не понимают ни монады, ни всю эту прилагающуюся чепуху.В сухом остатке получаем эдакий найс трай, хаскель интересный, несёт в себе новизну, предлагает альтернативный подход, но всё это наполовину банально не работает, либо требует недюжинных ментальных усилий для решения казалось бы совсем простых задач.
>>928413Никак. Ты точно сойдешь с ума.
>>928468Хаскелль и не стремится быть производительным. Писать на нем полноценное приложение не стоит, однако он подходит для прототипирования бизнес-логики, позволяя сконцентрироваться на том, что нужно писать, а не как. Потому что нефиг ебать байты на нем, это не Си и не Раст.
>>928642>позволяя сконцентрироваться на том, что нужно писатьВ результате обычно ты так концентрируешься, что про бизнес-логику забываешь.
>>928652Если ты забываешь про бизнес-логику, то это явно не проблема языка.
>>928674Проблема языка - это когда его используют пара аутистов для написания факториалов.
Потерял ФП-тред, так что спрошу здесь. Я не понимаю, что такое "ФП". Вот ООП мы имеет программу, которая состоит из объектов - реализаций классов и их иерархию засчёт наследования. Эта концепция легко ложится на наше человеческое понимание мира. Имею небольшой опыт хаскелля (в основном задачки из учебников и курсов на <10 строк) и у меня нет понимания, что такое фп. Анонимные функции? Использование всяких map, filter вместо циклов? Так это есть и в языке с ООП головного мозга C# за счёт LINQ и Делегатов. Да, c# не может так оптимизировать рекурсию, как божественный GHC. Иммутабельность? Божественная система типов? Так это есть в том же Rust, который не является функциональным, да и в Lisp типизация динамическая.Как понять, что такое ФП?
>>928820Функцианальное программирование - это функции (высшего порядка). Элементы ФП сейчас есть почти в каждом современном языке программирования. И в Java, и в C#, и даже в JS. Равно как и элементы ООП есть в Хаскелле, но реализованы тоже через функции, поэтому он чисто функциональный язык.
>>928820>Как понять, что такое ФП? Это ещё одна концепция, и она тоже легко ложится на наше человеческое понимание мира: «сунул, вынул, да пошёл».
>>928820ФП - это reference transparenty
>>928820>Эта концепция легко ложится на наше человеческое понимание мира.О, дружище, "ООП хорошо для GUI" - это примерно такой же спид, как и "ООП хорошо для всего" - когда программисты обожглись об ООП, но проблемы гуйни глубже формошлёпства не исследовали, поэтому решили "ну ладно, ООП для %моей_предметной_области% - говно, но ведь КНОПКА - это же объект!!1". Ты ведь понимаешь, о чем я, а уёбок? Повторю другими словами на всякий случай: когда ты был маленьким и глупым и нихуя не шарил в своей предметной области, ты думал, что "всё есть (некий абстрактный) объект (про который я нихуя не знаю)" и что ООП идеально этот факт моделирует. Потом ты немного подрос и поумнел, и выделил в своей области множество взаимосвязей и закономерностей. И она наполнилась морфизмами, функторами, отражениями, естественными преобразованиями, пределами, копределами, сопряжениями и прочими знаниями, для моделирования которых убогое ООП ну никак не подходит. А гуй для тебя так и остался той областью, в которой ты нихуя не шаришь. Так вот, уёбок, не надо экстраполировать свою самоуверенность на все отрасли человеческой деятельности. Если ты охуенный спец по обработке сигналов, это еще не значит, что ты охуенный спец по чистке туалетов или лепке крудов. И если ты не видишь в лепке крудов никаких закономерностей, это еще не значит, что их там нет, и что любой виджет есть объект и не более того. Закономерностей там более чем дохуя. Я вот с ходу могу сказать, что гуйню лучше моделировать стрелками, чем объектами, а истинный спец по гуи тебе наверняка категорий пять навернёт, охватывающих визуализацию, валидацию, интернационализацию и локализацию, лейаут, помощь людям с ограниченными возможностями и хуй знает, что там еще может быть.. Поэтому пиши про то, что знаешь, а про гуй пусть лучше спецы по гуи напишут, от них то мы и узнаем, столь ли там хорошо ООП, или приходится еще каким-нибудь xml-ем в жопу поябываться.
>>928820>та концепция легко ложится на наше человеческое понимание мира.Для «объекта» не существует формального определения. ООП вообще никак не формализовано. Это набор ad hoc практик, интуиций и советов бывалых охотников в стиле «чтобы копье лучше било мамонта, его должна обоссать девственица в полнолуние».
>>928957>но проблемы гуйни глубже формошлёпства не исследовалиЗато малолетний дебил, писавший эту тупую пасту исследовал, ага. Пусть свою диссертацию покажет, епт.>Я вот с ходу могу сказать, что гуйню лучше моделировать стрелками, чем объектами,Без реализации уровня Qt (или хотя бы дельфийского VCL) ты с ходу проследуешь под шконарь со своим кукареканием.> а истинный спец по гуиПошлет нахуй борщепетухов и скажет, что лучше ООП ничего для гуя не придумано.
>>928965>этот багет портвешкового слюсаря на высеченную в граните истинуммммм))
Новые монады завезли уже?
>>929004Тебя явно ткнули тут носом в "а как оно на практике?"> Без реализации уровня Qt (или хотя бы дельфийского VCL) ты с ходу проследуешь под шконарь Нормальный естественный вопрос инженера-ремесленника, коими являются профессиональные программисты.А ты вместо ответа взял и обосрался. Какие тут выводы можно сделать?мимоанон
Поясните, пожалуйста, что не так и как надо:Prelude> :type ['1'] ++ ['2']['1'] ++ ['2'] :: [Char]Prelude> :type "12""12" :: [Char]Prelude> read "12" :: Int12Prelude> read ['1'] ++ ['2'] :: Int<interactive>:4:1: error: • Couldn't match expected type ‘Int’ with actual type ‘[Char]’ • In the expression: read ['1'] ++ ['2'] :: Int In an equation for ‘it’: it = read ['1'] ++ ['2'] :: IntPrelude>
>>929292Кажется у read приоритет тут больше чем у ++.Поставь скобки и заработает.
>>929297Да, спасибо!
>>929292мне кажется, на этом яп хорошо под кислотой кодить
>>928824ООП везде реализовано через функции, довен. Если ссылка/указатель/whatever на об'ект передаётся в функцию неявно и ты её не видишь, то не значит, что её нет и что функция перестаёт быть функцией.Так-то.
Haskell - когда документируешь исходный код пикшей.
>>928398https://github.com/schernichkin
>>928400>Вы прослушали мнение человека, не осилившего труды Карла Маркса в оригинале, но уверенно пиздещего при этом про Марксизм.
>>928468>Каждая лекция о хаскеле содержит детальное разъяснениеМожет ты еще список всех лекций принесешь, чтобы мы проверили, действительно каждая содержит или не каждая?>незнание точного порядка ленивой эвалюации произвольного выраженияОни всегда вычисляются в нормальном порядке, короче еще один фантазёр-неосилятор, дальше этот бред не читал.
>>928701Это про какой-то вымышленный тобой язык, но точно не про Хаскель.
>>928820>Эта концепция легко ложится на наше человеческое понимание мираЯвляется ли прямоугольник наследником квадрата? Колесо - это свойство автомобиля или свойство дороги, на котором оно стоит?
>>928965>Без реализации уровня Qt (или хотя бы дельфийского VCL)Ебать ты говноед.
>>930605В ООП нет и не может быть функций, т.к. для функций нужно как минимум отсутсвие сайдэффектов.
Рагуль о языке погромирования ЭТА (haskell for JVM):https://www.functionalgeekery.com/episode-83-rahul-muttineni/
>>931664Зачем если уже есть Frege?
>>931737>FregeЭто параша, а не язык.Слишком много джавы.А в ЭТЕ ты просто пышешь на цацкеле, а компилируется всё в байткод виртуальной машины джава.
>>931766Во Frege то же самое, лол.
Как там понятный и ненагруженный синтаксис?
>>928965>что лучше ООП ничего для гуя не придуманоООП гуй - говно и дрисня. С формочками в 90-х еще как-то справлялось (плохо), но для современных интерфейсов его надо нахуй выкидывать.
>>931922Реактивное ФП, впрочем, тоже не очень для гуя подходит. Думаю, лучше подойдет что-то из синхронных языков вроде Lustre.
>>931858FFE разный
>>931924Cрака тваей мамашки лутше, хех.
>>931422ВРЁТИ!
>>928960>ООП вообще никак не формализованоЭто не правда.>>929055Сделай свою, шо ты как не родной.>>931874Абсолютно согласен, только конченная мразь будет ставить пробел после слеша в лямбде.>>931924>тоже не очень для гуя подходитПочему? Elaborate pls
>>932234>Почему? Elaborate plsПотому что там стейта нет, а стейт для гуя естественнен и интуитивен.
>>932237> стейта нетА свертка сигнала это разве не стейт?
>>932237Запили Elm-like компоненты с локальным состоянием и соедини их сигналами, хуле.
Монада это, получается, типа галлюцинаций, но направленных из реального мира?
>>932234>Это не правда.Тогда давай определение композиции в оопе.
https://www.upwork.com/hire/haskell-freelancers/
>>933830https://www.upwork.com/hire/cocksucker-freelancers/
>>932430Я не он, но, кажется, композициия в ооп - это включение одного объекта в другой.
>>933873Молодец. А теперь определение результата композиции двух объектов в ООП?В ФП всё просто: (a ->b) . (b -> c) = (a -> c)А в ООП? null
>>933998Ты реально не понимаешь разницы между композицией функций и композицией как семантической связью между классами?
>>933999Подробнее. Есть у меня class A, есть класс B. Я создаю два объекта: a = new A, b = new B.Какой результат a->setB(b)? Даже если бы был результат некий a', чем бы он отличался от а? Как мне произвести объектную декомпозицию? никак потому что в оопе объекты комбинируются процедурным быдлокодом, строгость которого где-то между юредическим соглашением и философским трактатом >композицией как семантической связью между классами? А какой с неё понт? Она не даёт никакой строгости, от того что в классе A есть метод setB(b: B), совершенно неизвестно что произойдёт после его вызова, что произойдёт с а, что произойдёт с b, понять это можно только посмотрев реализацию метода.
>>933998(a содержит b) . (b содержит c) = (a содержит c)%)
>>934003Вернее, разумеется, с а или с b ничего "произойти" не должно, а должен быть некий результат или экшн. Результата инжекшна a в b обычно нет, потому что setA - не функция, а процiдурка, экшн с сайд-эффектом в виде изменения стейта программы, экшн этот не имеет никакого типа (оопе же), никак не определён и не может быть изолирован и проверен.
>>934004не работает, инкапсуляция же
>>934009И правда, не подумал)
>>934009Т.е. без инкапсуляции это бы работало, и композиция объектов была бы определена?
>>934073Нет.
>>934407Почему???
>>934073Я как-то думал над этим. На определённом ограниченном варианте ООП, если бы a->setB(b) всегда возвращало некий с, можно было бы думать что этот с теперь имеет все публичные методы A, все публичные методы B, все их комбинации, то есть декартово произведенеие интерфейсов A x B, плюс все публичные поля (нахуй публичнве поля, геттеры/сеттеры же). Но по сути никакого декартового произведения не будет, так как методы имеют различные сигнатуры, различные типы, могут комбинироваться сайд-эффектным быдлокодом и вообще пиздец. С другой стороны можно рассматривать а как некий носитель стейта, а setB - типа сайд эффект, который его меняет. Но опять же в ООП сайд эффекты никак не типизированны и вообще как понять, чем теперь a отличается от a', если a->doShit() работало, будет ли правильно работать a'->doShit() ? Короче полная хуйня. Карделли конечно красиво стелит в своих пейперах, множества-хуёжества, но никакого толку нет, при первой же попытке применять какие-то формальные методы сразу всё летит под хуй. К тому же сама идея сказать что класс - это тип, уже хуёвая, помоему многие проблеммы именно из-за этого.
>>934411Да потому что в оопе нет никакого (.)В твей формуле (.) это типа коньюнкция, а (=) импликация? Что-то вроде, если a имеет ссылку на b и b имеет ссылку на c, то а имеет ссылку на с? И что это даёт? Операция композиции где? Где результат? Где тип?Если у тебя скажем а имеющая в своём стейте, кроме всего остального, ссылку на b, b имеющая ссылку на с, в резльтате инжекшна а в b у тебя будет nullчто произойдёт, так это изменится стейт стейт, но как - хуй знает.
Почему все так гонят на сайд-эффекты? Ведь это единственный способ взаимодействия программ с миром, и с пользователями в том числе. Мало кто топит за то, чтобы сайд-эффекты просто были максимально изолированы от остальной части системы, многие просто говорят, что сайд-эффекты - чистое зло.
>>934433Есть термин "побочные эффекты" же.
>>934437Вот я про него и говорю. Не в отношении постов выше, а вообще.
>>934433>Почему все так гонят на сайд-эффекты? Потому что в большинстве императивных языков они плохо изолированы и не контролируются.
>>934588Можешь привести примеры таких языков?А примеры языков, в которых они хорошо изолированы (кроме функциональных)?
>>934597>А примеры языков, в которых они хорошо изолированы (кроме функциональных)?https://en.wikipedia.org/wiki/Esterel
>>934433>это единственный способ взаимодействия программ с миром, и с пользователями в том числеНе единственный. Можно брать весь мир на вход функции и возвращать модифицированным на выходе. Всё, функция чистая, у неё нет сайд-эффектов.
>>934609Почти так и делается в языках с линейными/афинными типами, лол.
>>934609>>934610Что за пиздец? Вы серьезно?
>>934609Почему так никто не делает?
>>934612Абсолютно.>>934614IO-монада концептуально так и работает.
>>934433>Почему все так гонят на сайд-эффекты?Только потому что трудно ими управлять, и они происходят не там, не тогда, или не в той последовательности что надо. Весь этот хайп вокруг ФП только из-за более лучшего разделения эффектов. И то, подход х-ля с монадочками уже далеко не единственный.
>>935024> ужеОн и не был никогда единственным.
>>935049Можно примеры?
>>935072В треде уже упоминались линейные/афинные типы. Например в Clean они позволяют делать деструктивные апдейты по месту, но при этом без потери чистоты.http://thedeemon.livejournal.com/37515.htmlНу или в Mercury уникальные типы юзаются для IO.
>>935072С линейными типрами есть, например>F* is a verification-oriented dialect of ML. Вроде в растике ещё где-то юзаются для мемори менеджмента.Ещё были регионы в ML.
>>935089Ну регионы - это не про сайд-эффекты все-таки, насколько я знаю.
Народ, решил попробовать соснуть функционального хуйца. Стоит ли начинать с Хаскеля? Просто вариантов не так много. Скалу не хочу, я Джаву не знаю. F# бесполезен, erlang и elixir - возможно. Но я почему-то хочу Хаскель. Какие подводные камни?
>>935396Будешь долго размышлять над монадами.
>>935396>Народ, решил попробовать соснуть функционального хуйца. Стоит ли начинать с Хаскеля?Да. Других вариантов, в общем, нет.
>>916056 (OP)Как достигнуть функциональной нирваны и единиться с монадой?
>>935531There is no royal road to Haskell. —Euclid
Как выглядят монады в компьютере?
Можно ли представить разум, как программу на функциональном программировании, а рецепторы и действия тела как монады?
>>9355311. Получить высшее в матеше на тему теории групп.2. Освоить хаскель.3. Проблеваться осознанием насколько убого программирование и сколько допущений и глупостей в той же хаскельной монаде.4. Идти торговать на черкизон.
>>935924Нет. Для этого есть машлёрнинг на пердоне/крестах/gpu.
>>935923Как набор разнородной хуеты с парой общих свойств.
Под какой музон лучше всего закинуться маркой и постигать монады на Хаскеле?https://www.youtube.com/watch?v=eHicZV2H__8
>>935925>теории группВот ты и слился, дебила кусок.Каких групп, нахуй?Там категории, ёпта!
>>936671так котегории эта обобсчённая хуита карочей можит быть и множество и группа и топалогия типа врубаешь?ваще теория котегорий ничево нового не даёт а только систиматизирует уже отработанные области мотематики типа вот ета пиздюлька из топалогии и воон та хуёвина из теории множеств ета у нас такая то котегория, братан
>>936671Хули ты пиздишь, гнида?! Самый умный дохуя? Мне шарящие пацаны по-братски выдали сначала теорию групп заценить. Смотри мне тут, сука, пиздеть ещё будешь, ебало накрошу.
>>936638To build a full order on a set of complex numbers очевиден
>>937201> psycho rock noise experimental breakcoreКакой-то набор малолетнего говноеда.
Сап приседальщики. Стек тут кто-нибудь юзает? Заебался я уже, весь день пытаюсь ублажать зависимости чтобы установить ебучий hsdev для sublime haskell. Но нихуя:Error: While constructing the build plan, the following exceptions were encountered:In the dependencies for haddock-api-2.17.3: ghc-8.0.2 must match >=8.0 && <8.0.2Как блядть его заставить установить(lts-8.2 у меня + запускаю на прыщах)? Я так понимаю эти hsdev дают кучу плюшек, потому что с hdevtools мой сублайм нихуя не делает, кроме подсвечивания неиспользуемой хуиты и высирания всплывающих сообщений при ошибке компиляции.ЕСТЬ ТУТ ПРАКТИКУЮЩИЕ КАЧКИ ИЛИ ВСЕ ТЕОРЕТИЗИРУЮТ?
>>937300Поставь кабалом в песочницу и не еби анону моск, если не можешь разобраться со стеком.
>>937300https://github.com/mvoidex/hsdev/issues/46
Обоссы, но не бей Поясните в чем проблема
>>937827хорошо что в моём ламповом пхп такой хуйни нет
>>937217Кто-то не может в иронию.
>>937827Неправильный тип.
>>937827-1.0 в скобки возми: (-1.0)
>>937861Два мешка котегорий, теперь работает. Т.е. отрицательные числа всегда в скобки пихать?Я до этого подумал что дело в минусе и пробовал вот так в скобки не додумался, лол:acos $ clamp $ -1.0 theta 1.0, но тайпчекер не ублажился. В этом случае я так понимаю оно вернуло функцию -1, потом применило к theta и обосралось от того что в clamp пихают 2 аргумента, а не 3? Просто хочу понять как оно там у математиков работает, тайпчекер мне кучу хуеты выдал
Нам препод по программированию сказал, что если нам нечем заняться, то стоит учить Гаскiль, лол
>>937953> препод по программированию>АВТОРИТЕТНОЕ МНЕНИЕРаздался голос со стороны преподавателя...
>>938002прафесар жи
неужели кто-то реально на этом кодит? я просто поржать захожу
>>938031>неужели кто-то реально на этом кодит? А что не так?>я просто поржать захожу С чего?
>>938050>С чего?Со своего скудоумия
>>938050с хаскелистов
Поясните как вкотиться в Хаскель.
>>938173лёрн юпотом риал ворлдпотом бигиннинг хаскел проджэкт бэйст эпроучпотом книги диляа затем уже вэб-фрэймворки учи, приложения в машин-лёрнинге, дата сцайенс, финансах и так далее
Блять, ну нахуй ваш качкель, опять дропаю на неопределенный срок ибо заебал люто. Хотел вкатиться в более серьезные вещи, а не вычислениыя метофакториалов и началось: cabal hell, ебучие несовместимости пакетов, которые решаются методом "угадай версию", куча language extensions даже на банальные вещи. Анальный тайпчекер: уже на простых вещах он выебывается со своими закидонами. Везде надо хуячить типы, которые как бы выводяться, а потом хуяк там-сям нельзя, надо врубить пару расширителей ануса языка. Какие-то блять кресты некст левел, по уровню неочевидных вещей и прострелов колен, особенно в правилах выведения и ублажения типов. Отдельная песня сообщения об ошибках, в 99% там будет что угодно, кроме хотя бы размытого намека на твою ошибку. Языку хуй знает сколько нет, но по сравнению даже с какой нибудь полуизотерикой нихуя нет. И это я еще как следует не сталкивался с проблемами ленивости и макаронного дебаггинга.Еще не понравилось отсутствие перегрузки функций, это может вкусовщина и щас меня тут обоссут мамкиными борщами, но это тупо, когда тебе нужно либо выдумывать новое название функций, как в каком-нибудь си, либо инстанциировать, как правило левый класс, для своих обязанностей.Что мне реально нравиться в хачкеле и МЛях это алгебраические типы данных, каррирование, все эти функции высших порядков типа фолдинга, фильтры-хуильтры, функторы и паттерн матчинг. Но это все есть во всех приличных языках. Остальное только постоянно ставит палки в колеса. Ну его нахуй.инб4: ко-ко-ко неосилятор порвался, несите следующего
>>938210> в машин-лёрнинге, дата сцайенсГде там его используют, подкинешь ссылок?
>>938218>мне реально нравитьсяУроки иди сделай лучше. Или школьный курс повтори если великовозрастный.
>>938224Конкретно с этим словом всегда проблемы, хуй знает зачем рептилоиды мне так внушили, но на автомате всегда пишу с ь, и тем не менее...
>>938225Нравиться это инфинитив. Это что делать. Бегать, прыгать, летать, нравиться. Мне нравиться, мне казаться, мне улыбаться. Ты хочешь мне нравиться? Ты просто не представляешь как ты срёшь всем в голову своим "автоматом" на деле необразованностью.
>>938226Лол, ты серьезно думал я не знаю как правильно и как проверять чувствительный ты наш?
Поясните в двух словах, нахуя нужно изучать весь этот ваш Хаскель. Спасибо.
>>9385781.Прост2.По приколу
>>938578Чтобы перестать быть долбоёбом и наконец стать программистом.
>>938663>>938639Как моя жизнь измениться после изучения Хаскеля? То есть вот есть ДО и ПОСЛЕ. В чем принципиальная разница? ИНБИФО: Раньше ты не знал Хаскеля, а теперь знаешь.
>>938743А кто ты сейчас?
>>938748Хикка сидящий у мамки на шее, но могущий в ЯП.
>>938755>но могущий в ЯП.>еще не знает хаскеляКому ты заливаешь? Иди проходи introduction to programming with python на курсере, а потом возвращайся.
>>938218Все так, да. За перегрузку обоссал, да.
>>938770>introduction to programming with pythonНо я всегда был за строгую типизацию и потому считаю питон говном.
>>938773В питоне строгая типизация. Поэтому говно - это ты.
>>938782Нет не строгая.
>>938773>строгую типизацию>в питоне строгаяВангую что ты имел ввиду статическую.Иди-ка реально programming for absolute begginers читани
>>938788>>938782Бля, вы правы. Не бейте, лучше обоссыте(((
>>938784Строгая статическая типизация, говно.
>>938796динамическаяфикс
>Integers are represented in lambda calculus by the ‘Church numerals’. Zero is represented by the lambda expression λfx.x, and other integers are generated by the applying successor function λnfx.f(nfx) to an existing integer n. In other words, n is represented by λfx.f(f(...f(fx)..)) where there are n fs on the right.Ребят, поясните за lambda arithmetics. Ведь n не меняется, разве там не должна возникнуть бесконечная рекурсия? Извините за тупой вопрос.
>>938829Где ты там бесконечную увидел? Это не рекурсия даже. Это n раз применить функцию "следующее число" к нулю чтобы получить собственно само n.
>>938829λabc.x это сокращенная запись, полносью будет λa.λb.λc.x. Дальше> λnfx.f(nfx)Тут имеется ввиду функция succ. Она просто применяет f еще раз.Если на вход ей дать лямбду которая возвращает fx, succ вернет лямбду с теми же аргументами но возвращающую f(fx).Например, по определению 0 = λfx.x, 1 = λfx.fx, значит:succ 0 = λ0fx.f(0fx) = подставляем 0 λ(λfx.x)fx.f((λfx.x)fx) = λx.f(x) = 1
>>938961Так, я пиздец как обосрался. Надо спать.Забудь последнюю строчку в том посте.Но остальное прочти все равно, и вот это вот:succ = λnfx.f(nfx)succ 0 = (λnfx.f(nfx))0 = λfx.f(0fx) = λfx.f((λfx.x)fx) = λfx.f(x) = 1Вообще любопытно где ты кодировку черча встретил. Не то чтобы особо малоизвестная или сложная тема, но хаскелисты с лямбдой даже до такой степени редко знакомятся.
>>938971> редко знакомятсяОй-йо.
>>938971Перед изучением хаскеля осиливал лямбда калькулус и теорию категорийМимо другой
>>938218>cabal hellstack>куча language extensionsЗапиши их в cabal-файле проекта>отсутствие перегрузки функций, это может вкусовщинаТак и есть
>>939095Со стеком у меня было ебли даже больше чем с кабалом. Там тоже гадание на версии lts и конпелятора и в итоге нихуя не собралось.>Запиши их в cabal-файле проектаТы даже не понял в чем проблема.
>>939319>>939095А cabal sandbox не решает проблему? Я не особо в хаскеле шарю, но если я понял правильно то по крайней мере проблема с версиями библиотек должна отпасть полностью.
Так как работают монады в случае нужды записать мне в файл?
>>939402Записал тебе в файл, справил нужду тебе в файл.
А можно в таких языках, как haskell обойтись без сборщика мусора?
>>939410Конкретно в хаскеле - нет, он же ленивое хуйло. Чистота без гц возможна, луркай (внезапно) раст, клин, линейные типы, в меркюри вроде тоже такое было, регионы в мл... Короче, linear types memory management pdf и regions memoey ml pdf.
>>939415В меркурии, несмотря на наличие регионов есть мусоросборщик, обычный boehm_gc. В млтоне отказались от регионов, например, как и в окамле. Вообще, разве основная проблема не из-за персистентных структур?
>>939427Я точно помню, что читал пейпер про меркури без гц. Вроде диссер чей-то. Но это давно было, забыл, что там и как.Основная проблема в структурал шаринге, из-за которого надо рефкаунт делать, если о датаструктурах говорить.
>>939450Да был пейпер вот этотhttp://dl.acm.org/citation.cfm?doid=1375634.1375644Но я так понимаю, там говорится, что они только кое-какую часть перенесли на регионы, в последней версии рантайма там как был гц, так и остался.
>>938971Спасибо, анон, теперь понятно.
>>939466Ну так это ж рисерч, его необязательно в мастер пихать.
>>939427>>939415Mercury и constraint programming годнота? Стоит попробовать? Прологом не владею
>>939466Где можно спиратить книги с этого сайта. Заинтересовала A Framework for Scientific Discovery through Video Games
>>939555А хуй знает. Меня как-то не вставило, но я и не копался в нем особо.
>>939555Да стоит, там много крутых идей. Но сама платформа сырая конечно же, ещё и релиз последний аж в 2014 был, хотя в мастер пушат регулярно, но там 1,5 рабочих силы на подхвате.
https://github.com/dotnet/csharplang/issues/164.Net-обезьянки опять пытаются натянуть гандон на глобус запилить тайпкласы
>>916195Для всего вышеперечисленного, если охота сразу, но без хардкора. На то он и язык общего назначения.
>>940240Они хотя бы пытаются, это уже ставит их на одну ступень эволюции выше большинства мартышек.>>939555Лучше сразу курить theorem prover'ы, тот же Coq - там все эти алгоритмы вывода давно уже есть, если в доках покопаться.
Блять, аноны, поясните.Я вот пытался долбоебам на работе задвинуть про Coq, так они теперь меня доебываются, говорят среда Coq для языка программирования Petooh. Они не со зла, конечно, но почему вот люди такие тупые?
>>940257Хех.
>>940257Это потому что ты теперь Petooh)).
На сколько я понял, в haskell весьма легко использовать функцию в префиксной записи для инфиксной и наоборот. А постфиксную нотацию можно?
>>940759Не так и удобно, надо заключать в обратные кавычки типа getHui you inAnus можно записать как you `getHui` inAnus, нет бы сделали один символ.Делать как в этих ваших фортах хаскель не умеет. Но есть расширение для ghc -XPostfixOperatorshttps://downloads.haskell.org/~ghc/6.6/docs/html/users_guide/syntax-extns.html
>>940639Вот и они тоже это говорят. И еще говорят, что это все для быдла и там quick sort написать нельзя. А сами юзают С++-парашу, лол, я ебу
Кто-нибудь может !доходчиво! объяснить ньюфагу про хаскельную модель вычислений? (Санки, спарки, WHNF... вот это вот всё) Как там гарантируется 'означивание по необходимости'. Зачем надо Spineless Tagless G-machine?
Вкатываюсь опять с нубовопросами:1. Пикрил, хочу сделать слияние двух листов через определенную функцию, хуле оно выебывается?2. Как можно красиво и практично извлечь сублист определенной длинны и с определенной позиции типа [1, 2, 3, 4, 5, 6, 7] subl (3, 3) = [5, 6, 7]?
>>9410221. zipWith2. subList (start, len) = take len . drop start
>>940952Да они охуели. На хаскелле квиксорт в три строчки пишется. Правда, работает небыстро.
>>940952Квиксорт в Хаскеле неправильный, он соснет хуйца, если массив отсортирован по убыванию или частично отсортирован по убыванию.
Опять начинаете блять? Ну давайте ещё скажите что квиксорт на хаскеле вырождается в три сорт или что-то в этом стиле.
>>941135Но ведь с++ еще хуже. Только там у меня он долго сортировал, когда по возрастанию было отсортировано.А еще можно еще просто случайно перемешивать элементы перед сортировкой, вроде.
>>941185Там вроде O(n*n) получается + создание списков, не намного медленнее квиксорта.
>>941185Вот тут дауны сидят, пиздец. Что за три сорт?> qsort [] = []> qsort (x:xs) = qsort small ++ mid ++ qsort large> where> small = [y | y<-xs, y<x]> mid = [y | y<-xs, y==x] ++ [x]> large = [y | y<-xs, y>x]Если список отсортирован в обратном порядке (даже если частично), то там уже никак не O(NlogN), а O(N^2). Эта хуйня вырождается в сортировку вставками. Я как-то на Хаскелле делал нормальную быструю сортировку, так вот она выглядит не так, как в этом рекламном примере.
>>941223>так вот она выглядит не так, как в этом рекламном примере.А как?
>>941223Именно так она и выглядит. Здесь передана самая суть алгоритма, и без мутабельного говна, как в императивщине. Работать должно даже быстрее, чем в Си, но у меня в бенчмарках получалось где-то 10 секунд (в си одна десятая секунды, в джаве полторы). Но это плата за няшную иммутабельность и стройность алгоритма.
>>941232> Работать должно даже быстрее, чем в СиСмищно.
>>941233Что тебе смищно? Сишник закукарекал? В Хаскелле иммутабельность и ленивость, а это по определению лучше мутабельности ибо большой простор для оптимизаций, так что может работать быстрее.
>>941237>ибо большой простор для оптимизацийИ, как следствие, большая сложность компилятора.
>>941237>ВРЕТИ РРРЯЯЯЯЯ!!1Понятно.Ну напиши мне квиксорт на хасцелле быстрее си. Пока что это все позорище и бредни маркетолухов.мимосишник
>>941237Смищно2Иммутабельность и ленивость нужны для выразительности языка. Бесконечные списки и всё такое.Достигается выразительность ценой низкой производительности. Но там, где производительность не нужна, хаскель рулит.
>>941245>haskell>выразительности языкаСмищно3Хаскелл - это не для быдла язык, там даже для простых вещей нужно мозг использовать, чтобы было интересно, нужна тебе тупая понятность для даунов, бери питон или еще какую ссанину для быдла.
>>941261Вы только посмотрите на это небыдло. Хаскель не сложен, а просто немного непривычен.
Посоны, проясните мне ещё раз за преимущества хаскеля. Я даже пару программ на нём написал, монады.. ну понял что такое монады в хаскеле, но теоркатный прообраз совсем не асилил. Ну ленивость, ну чистота, всё это здорово, но мне как-то опытные люди сказали что хаскел это клёво для каких-нибудь чистых вычислений, но плохо для stateful программ, всяких движков графики/физики и всего такого. Что конкретно вас заставляет учить хаскел, а не какой-нибудь раст к примеру или эрланг/окамл? Всерьёз считаете что поумнеете? Тяга к прекрасному? Или какие-то практические прикидки?
>>941279>stateful программЧто это за бредни? Сам придумал?Главное преимущество функционального программирования - выразительность и стройность / строгость кодирования алгоритмов. Главный недостаток - непредсказуемо низкая производительность / эффективность программ, имплементированных на тьюринг-машинах. Если тебя это устраивает - бери ФП, нет - иди мимо.
>>941279Короче слушай сюда. Если ты считаешь себя разумным человеком ты должен выбирать хаскелль. Потому что все программы на нем получаются простыми и доступными как если бы их писали гении, но только если ты тоже не тупой убогий императивщик отсиживающий свою жопу. Это им важна производительность, а умные программисты таким голову не забивают, им важно, чтобы их код был непонятен говну, которое лезет изо всех щелей как тараканы в айти. Тебе еще будут втирать тут всякие быдлокодеры на языке "си-хуй соси" про работку что-то, но ты как разумный человек должен выбирать с заделом на будующее, когда все они будут насасывать хуи и их пидоров будут ебать в сочную сраку функциональщики огромным бесконечным списком с вот такой головой. А ты откроешь свой емакс под линуксом, который тоже к тому времени победит, и будешь писать код на хаскелле с искусственным интеллектом, и смотреть с недосягаемой высоты на этих гондонов, и лузгать семечки и бросать шелуху сверху, и это все потому что ты выбрал в свое время хаскелль.
>>941302Вот и жир потёк >изо всех щелей.Канай отсюда, дофига-работничек. Тебе здесь не рады.
>>941311А вот и императившик подтянулся. Что, готов уже, что мы тебе на ебало будем шелуху от семечек сбрасывать, пока длиннющий бесконечный список елозиет в твоем анусе, дружок?
>>941316Жирный, хорошь - под дурака работать.
>>941324Я не под тебя работаю, я вообще для всех пишу. Чего сразу если функциональщик, то жырный. Мы элита программирования, между прочим. Ты на себя вон посмотри, да на ебало свое, семками обсыпанное. Дибил императивный.
Ребят, что читнуть, если я знаю общие понятия и принципы хаскелля. Т.е. мне не нужно объяснять, как создавать свои типы данных, что делают функции foldl1', <$>(fmap). Знаю про функтор и моноид, совсем базовое знание монад. Никогда не писал ничего больше 40 строк(лол). Другими словами, нужна книга intermediate уровня.
>>941263Двачну этого, я тот мудак с матрицами и нихуя там сложного, просто везде неудобно. Плюс любовь хачкелистов к однобуквенным переменным >someHuita r1 r2 c1 c2 (M n m ro co w v) = r1 r2 c1 c2 M m ro n co w v Это не бро.https://hackage.haskell.org/package/matrix-0.3.5.0/docs/src/Data-Matrix.html#Matrix А с ленивостью так вообще пушка: в каждой статье/главе расписывают как это охуенно, приводят несколько маняпримеров охуенности которые нужны может в 0.0001% случаев зато не посмотришь в реальный код, везде борьба с ленивостью !Int !Hui !Pizda и instance NFData. Да и в целом, в коде любой более-менее используемой библиотечки начинается императивная петушня, мутабл векторы, низкоуровневый дроч unpackaми и т.д.
>>941279>Что конкретно вас заставляет учить хаскел, а не какой-нибудь раст к примеру или эрланг/окамл?>раст - чек>эрланг - чек>окамл - чекОсталось только хачкелем себя пощекотать
>>941352Beginning Haskell: A Project-Based ApproachReal World HaskellParallel and Concurrent Programming in HaskellПервая хоть и называется бегининг, но там поясняют за все real world вещи, в принципе во многом повторяет real world haskell, но во многих местах испанец гораздо лучше излагает.Третью еще не читал, чисто по совету анонов из треда, но судя по содержанию - годнота.
>>941354>однобуквенным переменным ... не броНеосилятором за версту несёт. Да как вы умудряетесь не понять главного?Тут же как в алгебре, это один из важнейших способов достичь абстрактности той самой, ради которой ФП.
ЫыыЪъъ, где есть внятное объяснение монад?
>>941022> длинны
Что с производительностью в функциональных языках?
>>941245>Но там, где производительность не нужна, хаскель рулит. > нужно мозг использоват>Потому что все программы на нем получаются простыми и доступными как если бы их писали гении, но только если ты тоже не тупой убогий императивщик отсиживающий свою жопу.>Неосилятором за версту несёт>ПукАргументы уровня: чтобы жрать говно - нужно быть гением, если тебе не нравится говно ты просто тупой
>>941440Нормально всё. Проблемы у всяких хачкелей из-за ленивости и чистоты ануса и эрлангов из-за того, что это динимическая интерпритируемая залупа.
>>941232Тебе уже сказали, что на определенных данных (список отсортирован в обратном направлении) эта реализация будет давать N^2. Оригинальная квик сорт тоже будет О(N^2), но там при правильной реализации вероятность этого будет очень маленькой, тогда как в этой рекламной реализации на Хаскелле ты всегда будешь получать квадратичное время на хуевых данных.>Здесь передана самая суть алгоритмаНихуя тут суть не передана, quicksort - это randomized algorithm. Суть алгоритма в том, чтобы pivot выбирался случайным образом, тут ничего такого нет.
>>941564> Суть алгоритма в том, чтобы pivot выбирался случайным образомУоу-уоу-уоу, иди-ка Кормена наверни.
>>941665Что не так?
>>941564Quicksort сортирует in-place, а здесь еще гора аллокаций, которые тоже, мягко говоря, небесплатны. Отсюда и тормоза в несколько порядков.Ты, я смотрю, типичный функтодурачок: над тобой поржать хотели, слона не приметив - а ты вообще не понял, о чем речь, лол. Не удивлюсь, что ты всерьез думаешь, что ту ссанину может компилятор оптимизировать, лол.
>>916281Почти всегда это не всегда как бы, как это не то же самое?
>>941813>еще гора аллокаций, которые тоже, мягко говоря, небесплатныO(NlogN) == O(c*NlogN), так что ни о каких отличиях на порядки тут речи не идет, иди что-нибудь по теории алгоритмов почитай, ебанашка.Аллокации у него, блять. Может, пруфанешь дизассемблером этох хуйни?По мне, так там должна быть оптимизация - список-то один и тот же петушится.
>>941862>O(NlogN) == O(c*NlogN)Чтоб тебе в очереди к терапевту с такими константами стоять, функтоблядок хуев.>пруфанешь дизассемблеромНу пруфани дизассемблером. Хули ты от меня-то ждешь, я не буду возиться с этой поебенью. Тем более, что цифры в сети есть, лично мне этого достаточно.>список-то один и тот же петушитсяДа петушишься здесь только ты, хуесос.
>>941911>Хули ты от меня-то ждешь, я не буду возиться с этой поебенью.Забавно, но именно ты высираешься ИТТ про оптимизации и аллокации.
>>941911>Тем более, что цифры в сети есть, лично мне этого достаточно.Какие цифры? Цифры от чего или для чего? Цифры количества хуев, побывавших в пизде твоей мамаши?
>>941942Нет, ты. Ты тут доказываешь, что "ВРЕТИ ХАСКИЛЬ НИТАРМАЗИТ!!1! АРРРЯЯЯ!!!!1!". Хотя квиксорт (и еще хэш-таблицы) - это классический предмет троллинга функтопидоров. Этим занимаются все, кому не лень - от мимокроков из соседних тредов до вполне серьезных исследователей, пишущих научные работы про эти косяки.>>941947>ХУИ В ТВОЁЙ МАМКИ АБЫРВАЛГ УДУШУ РАСТОПЧУКакой же ты жалкий, тупорылый долбоеб.
>>941962>Нет, ты. Ты тут доказываешь, что "ВРЕТИ ХАСКИЛЬ НИТАРМАЗИТ!!1! АРРРЯЯЯ!!!!1!".Ты попутал, пиздец. Я просто указал, что вот эта вот реализация квик сорт, которая есть в любом учебнике по любому функциональному языку, неправильная.
>>941962Плюс я сделал предположение, что даже в этом случае Хаскель не должен создавать 100500 списков, ведь это можно оптимизировать. Так ли это на самом деле, я не проверял. Ты же начал визжать про какие-то "отличия на порядки", хотя это вообще к теме не относилось.>классический предмет троллинга функтопидоровМимо. Я вообще из жаба-треда мимокрокодил.
>>941970Как ты можешь рассуждать о каких-либо абстракциях, если не смог додуматься, что, с моей точки зрения, это применимо попросту к большинству вещей у функтоблядков?Да и о чем с тобой разговарить, если ты не знаешь, что 1000N и N отличаются именно что на порядки, и это и есть тот слон, которого от тебя демонстративно прятали за спичечными коробками.
>>941981>Да и о чем с тобой разговарить, если ты не знаешь, что 1000N и N отличаются именно что на порядкиЕбать ты деревянный. При чем тут порядки, когда O(NlogN) и O(N^2) - это совсем разные алгоритмы? Ты же утверждаешь, что квиксорт на Хаскелле - это 1000 * квиксорт на С. То, что в качестве рекламки пишут на Хаскелле - это не квиксорт.
>>931420И что там? Какие-то проектики типа LABA1 без ридми и описания. Нахуй так жить?
>>941972Ну точняк еба нах. Он императивщик. Ебало подставил быстра свое. Мне шелуху от семак нада сбрасывать. Лашок ебаный.
>>942002>императивщик>у функтоблядковДа на тебя не угодишь. Ты сам-то кто по масти?
>>942029Конкатенативщик c амбициями в чистую declarativness, инфа сотка, мне только что лично Хаскель Карри нашептал
>>942029Раби-петух или 1с-ник какой-нибудь, скорее всего.
>>942029Ты че базаришь так нахуй? Ты че меня запомоил ебанат ахуел? Ты кому предьявляешь нахуй? Чушел блять. Иди нахуй атсуда дурак ебаный.>>942035>>942036Кароче бля пояснил нахуй этим по хаскелю хуем в их сладкие жопы сигу потушил об очко. Под шконарь загнали абассали ептать смотрите не запомойтесь ребзя.
ХАСКЕЛЛ УМИРАЕТ ГОЛАНГ ОЖИВАЕТ
>>942046Зачем нужен голанг если есть божественные beam languages?
>>941991Ну ты же не можешь в математику. Ты не понимаешь, что 1000n^2 хуже n^2, а оно хуже nlogn, грубо говоря. А в сишке константа и близко не эта условная тысяча.
>>942049Ну нихуя математик великий. Еще раз, специально для тебя в 10-й раз: рекламная реализация квик сорт на Хаскелле при сортировке списка, который уже отсортирован в обратном порядке, будет гарантированно O(N^2). Тогда как правильная рандомизированная реализация на С, Джаве, Сишарп и т.д. асимптотически также будет O(N^2), но в общем случае будет O(NlogN). Что тебе не понятно?
>>942051А где кстати прочитать про O(N^2) и вообще про то что этот квиксорт на самом деле не квиксорт?С пруфами естественно, в более-менее математическом смысле.Я чет не нагуглил даже сходу.
>>942049Функтодурачок, ты не дергайся и не петушись. Давай спокойно посмотрим, что там.https://android.googlesource.com/platform/libcore/+/android-4.2.2_r1/luni/src/main/java/java/util/DualPivotQuicksort.java#127В Java используется Dual Pivot Quicksort, там никакого рандома нет (как и в классическом квиксорте с первым/средним опорным элементом). А то, что обычный квиксорт имеет квадратичную сложность в худшем случае - так это в любом языке так, не только в тормозном хаскелле. И хаскелльный сорт тормозит в десять раз не поэтому. А теперь скажи дяде "спасибо" и иди уроки учить, дурень.
>>942065Ты не смотри, что там "android" написано, в доках Оракла прямым текстом указано, что у них тот же самый алгоритм.
>>942035>Хаскель КарриШёнфинкель, ты хотел сказать?
>>941741Суть не в этом, очевидно.
>>942035Чем плохи конкатенативные языки? Тем более, есть с реализациями теории типов. А уж для калькуляторов и микроволновок ничего лучше оных нет.
>>942211Ничем, все то вам на двачах кажется что в каждом посте пытаются опустить.
Какая самая годная иде для качков? Кроме емакса и вим которые не иде.Я уже заебался с сублаймом, этот пидор не работает так как мне нужно, вечно проебывается с синтаксисом, хуячит отступы табами, да и вообще хуево сделали. Попробовал три плагина на IDEA, но че-то ну ее нахуй, глючная неудобная хуета, ее только для явы применять + косячные плагины.Посоны с редита пишут про охуенную поддержку атома и сейчас его качаю, но помнится раньше это был убогий лагающий высер и чуичка подсказывает что за эти пару лет ничего не изменилось.В чем кодишь анон?
>>9410221. У тебя после применения map на список получается список каррированных функций, так что да, zipWith
Посоны, пара вопросов.1. Накатывал ли кто Nix / NixOS? Какие преимущества, недостатки? Зависимость есть?2. Объясните мне, почему я до сих пор не накатил XMonad?
>>942227Как-то ты хуево настроил саблайм, если у тебя такой пиздец. Табы пробелами настраиваются в правом нижнем углу, выбери просто "Indent using spaces" и выбери нужную длину.Дальше накати SublimeHaskell и SublimeREPL и живи счастливо.Можно ещё заморочиться и hlint, и автодополнение добавить, но дальше это уже свистоперделки лично мне и без них норм
>>942232Хз хз, мне нравится сублайм, но для хаскеля он какой-то хуевый. Все это я накатывал, однако работает через жопу. Ладно еще отступы, их можно и конвертнуть в три клика. Но эти плагины конкретно хаскель поддерживают криво. У меня постоянные проблемы с синтаксисом let и where. Если переносить их на следующую строку, то подсветка всего что ниже идет по пизде. Потом ебанутые всплывающие описания ошибок распидорашивающие строки. Так и не нашел как их отключить, без отключения всего остального. Hsdevs вообще унавоживает почти весь экран разными огромными иконками рефакторинга, неиспользуемых функций и т.д. Ну его нахуй.Сейчас попробовал хипстерский атом, вроде годно сделали, работает быстро(ставил до этого полтора-два года назад и он тормозил сильнее идеи, обвешаной макакоплагинами на гигабайт), радует глаз. Все плагины завелись без ебли в гамаке ну не совсем без ебли, некоторые пути все же надо было прописать в настройках, но это мелочиПосмотрю как дальше пойдет, но пока - заебись
>>942227Имакс не иде? Ты с какого района вообще? Не читал но не иде?
>>9422311. Ненужно.2. Ненужно.
>>942331Аргументация для пидоров?
>>9423303. НенужноЯ не вхож в круг любителей вырвиглаза и бесконечных конфигурирований-переконфигурирований в консольке.
>>942338Зато я вхож в твою мамашу. Похуй мне, куда ты входишь, я просто пиздаболов не люблю. Ты имакс в глаза не видел и утверждаешь, что он не иде, а он иде. Ирл я бы тебе уже зубы выбил, гнида.
>>942341>Ирл я бы тебе уже зубы выбил, гнида.А по айпи ты меня еще не вычислил, школоборец?>я просто пиздаболов не люблю>Ты имакс в глаза не видел, я так скозалУльтралол, самоистязания там не устраиваешь?
>>942227Ничего лучше жидеи нет всё равно.
>>942347Ну то есть по сути ты со мной согласен, раз по существу ничего не возразил, ок.
Ну, елки-палки. Где найти внятное объяснением монадам типа "вот так оно в математике, так в haskell, так в си, так в ассемблере, а так с помощью красивого психоделичного мультика" ?
>>942352Что мне тебе возражать? Емакс продвинутый блокнот, можно изнасиловать себя и превратить его в иде, но это для отдельных любителей капчевать из консоли и собирать все вручную. Для обычных, нормальных людей, которые не пердолились емаксом с времен рождения иссуса хуево называть это иде.>>942350> Для явы ничего лучше жидеи нет всё равно. Поправил тебяинбф: ко-ко нетбеансб эклипс
>>942369> Емакс продвинутый блокнотЕще раз: ты либо дебил, либо не видел толком имакса, либо и то, и другое. Не пизди о том, в чем не разбираешься, гнида.
>>942372Ой акстись ты нахуй со своим емаксом, ставил и пользовался не один раз. Иди нажми C-x C-c и съеби из треда, сектант.
>>942378Пидораха, я тебе указываю на фактическую ошибку, которую ты допустил, а ты из этого делаешь предположение, что я сектант\пользуюсь имаксом. И со знаниями проблемы, и с логикой не лады, и имакс не осилил. Типичная гнида.
А давайте соберем статистику длины хуйцов функциональных программистов в этом треде. Постим фото, измеренную длину, измеренную ширину, сколько лет, рост, вес.А потом скинем это все в джаватред, пускай эти карланы императивщики ебаные поплачут над своими короткостволами. Заодно узнают, чем их и ихних мамок ебать будут когда мы к власти придем.
>>942400Так ведь уже пришли.
>>942401Да. Тогда тем более надо сделать, веселей!
>>942381Что за унылая зелень пошла, НА ФАКТИЧЕСКУЮ ОШИБКУ он мне указывает, иди уроки доделай, мамкин демагог.
>>942400> пускай эти карланы императивщики ебаные поплачут над своими короткостволами12/12 см/cм, 189/73 см/кг, 26 лвл, Mlton, SML NJ, F#, haskell.Чет так себе у тебя план
>>94240014 лет.178 см роста и 63 кг.12 см.Scheme/Haskell/Prolog/Clean/Factor.
>>94240019 lvl17 sm185+- sm73 kgocaml, scala, erlang
>>942065Смотри-ка, а в Принстоне считают, что и в такой реализации рандом есть. Наверное, они долбоебы, да?http://algs4.cs.princeton.edu/23quicksort/QuickDualPivot.java.html>обычный квиксорт имеет квадратичную сложность в худшем случае - так это в любом языке такДа, но если список отсортирован (или частично отсортирован) в обратном направлении, то рандомизированные быстрые сортировки с большой степенью вероятности будут давать линеарифмическое время, а та хуйня на Хаскелле будет гарантированно квадратичной в таких случаях.Скажи, что ты траллируешь, плес? Я тебе одно и то же 100 раз повторил, ну не бывает же таких долбоебов как ты.
>>942468> имеет квадратичную сложность в худшем случаеКак раз чтобы избежать этот худший случай и делается shuffle. В принципе можно без него.
>>941813>а здесь еще гора аллокаций, которые тоже, мягко говоря, небесплатны>маня думает что хаскель не может в реюз read-only памяти и на каждый map будет создавать новую коллекцию>2017хотя по >Что за три сорт?можно было и не читать эту говноцепочкуолсо, >это инплейсс какого это хуя? потому что в деструктивной сипараше делают инплейс всего что только можно? но вообще-то одним из преимуществ квиксорта является естественное распараллеливание, что в случае с инплейсом не очень сочетается
>>942427>>942433>>942447совсем охуели? фотки где?у меня самого 10 см, но зато вешу 115 кг.
>>941431В Маклейне
>>942400dlina ~17.5 smrost 170ves 55
>>942421Ты даже текст шрифтом помельче не додумался прочитать - я уж не говорю о мануале, дебил.
>>942651Ты какой-то тупенький, реально как-будто школьникМимо 18 см
>>942670Семен семеныч, ну зойчем ви так.
>>942651>>942674Что еще спизданешь, малыш?
>>942687>>942674Аноны, хватит сраться и сливать тред в сраное говно, давайте лучше поговорим о сабже.Вот даже вопрос на засыпку. Слышал, что линзы и призмы не вносят ВООБЩЕ никакого оверхеда в код. Как так выходит? Юзаются специальные расширения языка, или что?
>>942687Иди мануал читай, гнида.>>942689Да ладно, тред же бампать надо. Про линзы - ну, ты про их реализацию читал вообще, не? У омича вроде были про это статьи.
>>942690Омич? Кто это?Я только LYAHFGG читал, цикл статей про монады (тот, что с картинками), ну и десяток-другой статей на пиндосском, остальное - курс в универе и практика.
>>942692okmijАлсо, есть же functional programming with bananas, lenses and envelopes
>>942693Круто, люблю, когда харкач полезен.Спасибо тебе, анон, буду изучать!
>>942692>курс в универеWhut? Это где так хачкелем балуют?
>>942698ИТМО
Вкатываюсь с очередными выебонами тайпчекера.Есть класс Vector и тип Vec3 являющийся экземпляром первого.В коде перемножение матриц, для чего берется строка и столбец матриц, преобразуются в вектора и вычисляется скалярное произведение(dot).Можно ли ублажить академиков без включения очередного анального расширителя(FlexibleContexts)?
>>942698>>942703У меня в Харькове (Украина) есть кружок functional programming для первокурсников. Думал туда закатиться, но чёт совсем слабенькая программа у императивных петухов
>>942709>>942769> для первокурсниковИмею ввиду на базе ВУЗа для определённых студентов определённой специальности
>>942770Да хуета обычно эти кружки/курсы( за ИТМО у анона не скажу) в 99% случаев будут задвигать элементарные вещи типа что функция может принимать и возвращать другие функции, что есть map, filter, reduce(про которые сейчас даже явамакаки знают), каррирование, расскажут как жи жить без присваивания и как делать циклы рекурсией + про хвостовую оптимизацию, научат сопостовлять паттерны и в лучшем случае еще объяснят за адт. А, ну и ленивость еще.Всю эту хуйню можно за часов пять с нуля самому освоить в любых книгах про хаскель. А продвинутых вещей и нахуя вообще оно все нужно там нихуя не рассказывают ограничиваясь мантрами вроде "ну епть, имутабельность, паралеливать легко, функционально же, пацаны зауважают".Есть знакомый, который от работы был на такой конференции про фп где тоже рассказывали не больше того, что я перечислил. И теперь он думает что стал спецом функциональщины и если где-то заходит разговор об этом начинает с видом эксперта рассказывать как это все круто, как у него точка сборки сдвинулась и открылась суть всех вещей. Проигрываю всегда с этогоМинск, Карла Маркса 38
>>942468Мальчик, знаешь, что с тобой не так? Ты привык жить в своих субъективных маняфантазиях.Ты не понимаешь, в чем суть промышленного программирования: так же, как в юриспруденции судят не по "справедливости", а по закону, так же и тут у нас руководствуются не интуитивными манявыводами (которые дауны вроде тебя называют "здравым смыслом", "логикой", и т.п. - ибо им кажется, что они мыслят единственно верно), а отраслевыми документами. Весь цимес троллинга именно в этой твоей ошибке, но ты, тупорылый школьник, никак не хочешь ее осознать.Оракл, Гугл, Эппл и прочие используют вариации квиксорта, в которых никакой рандомизации нет - а это значит, что ты не прав (т.е. обосрался). Дело не в оптимальности или неоптимальности такого решения, а в том, что оно именно таково по факту.
>>942770У нас ФП читают на 4 курсе, довольно продвинуто. В конце семестра нужно было написать свой ЯП, желательно с реплом.Итмо-кун
>>942831>Да хуета > 99% случаев будут задвигать элементарные вещи >>942769>Думал туда закатиться, но чёт совсем слабенькая программа у императивных петухов
Где почитать за все эти монады, дабы понять, что они представляют с себя при их составлении и на низком уровне?
>>942863Мне прямо даже интересно, где это может пригодиться в Реальной Жизнитм. Так же, как и с олимпиадами - в один прекрасный день гугл заявит, что олимпиадники-задроты пишут хуевый код, транспонирующий коней в вакууме на скорость, и нахуй не сдались?
>>942844Я уверен, что тебя бы выебли в очко, если бы ты использовал ту реализацию на Хаскелле в одной из упомянутых тобой контор (Оракл, Гугл, Эппл).Тебя бы ебали, а ты визжал про>суть промышленного программирования>в которых никакой рандомизации нет Там более навороченные оптимизации. Открой хотя бы исходники класса Arrays в Джаве.
>>943002Опять этот хуесос захрюкал, найс.>я того мама рот ибальВот только пока что хаскелисты визжат на хую гугла, независимо от того, что пишут. прям как мамка твоя>Там более навороченные оптимизацииВыходит, рандомизация не признак настоящего квиксорта по твоей же логике, и тебя бы за нее выебали в жопу. Пиздец ты тупой, ты думаешь, что мне что-то докажешь, а на деле получаешь все больше хуев на свой ротан. Ну как так можно, тебе что, нравится?
>>942951Ну если конкретно об языке, то на хаскеле пиздато парсеры писать. Взял megaparsec/attoparsec - и в путь. Либо код с высокой степенью надежности.Но его основная ценность не в этом, а в прочищении сознания, возможности взглянуть на языки программирования и с другой стороны. Если умело комбинировать ООП и ФП, то можно получать красивый, эффективный и легкий в сопровождении код. По-моему, оно того стоит.
>>942690lens over tea загугли еще
ебать я снайпер>>942689lens over tea загугли еще
>>942709ты похоже нихуя не понимаешь как работает $пользуйся скобками:let combine row col = dot (fromTuple row) (fromTuple col) newElem rowIndex colIndex = combine (getRow rowIndex mrx1) (getCol colIndex mtx2)
>>943518И тебе спасибо
>>943002> тебя бы> если бы> тебя бы
>>916056 (OP)>старинКто такой старин?
Хаскелач, почему мой пайп оператор не работает как надо? Пикрил две последние строчки, закоментированный код не эквивалентен нижележащему.>>943522>ты похоже нихуя не понимаешь как работает $Апликация функци c пониженным приоритетом, не? В том коде сначала было как ты написал, это потом я уже знаков там вместо скобок нахуячил. Но ошибки выдает одинаковые, а вопрос решился уточнением типа после вызова: (fromTuple row :: Vec3). Что-то мне казалось так уточнение типа не будет работать, а оно работает. Вот и сейчас я чет туплю на этом пайпе ибо заебалось по евгейски писать, справо на лево. Но нихуя не работает, хотя на простых примерах скользило как по вазелину.
>>942769хардкора захотел, сынок?закатывайся в эту субботу, че то придумаеммимо ассистент ВМБ
>>942698У меня в универе есть обязательный курс, посвященный парадигмам программирования. Функциональное программирование на Haskell — одна из тем. Кроме того, рассказывается много чего про нетипизированное и просто типизированное лямбда-исчисление, про выведение типов, доказательсво корректонсти системы типов, про let-полиморфизм. В общем, теоретическая основа того, с чем работает Haskell.
>>944141infixl 0 |>
Почему Неш на ОП-пике?
>>944689Они и программируют так же.
https://www.youtube.com/watch?v=qxeOl7iK3EU
>>944141есть жеhttp://hackage.haskell.org/package/base-4.9.1.0/docs/Data-Function.html#v:-38-
>>928965>Без реализации уровня QtReact+Redux это не Qt, но вполне себе мейнстрим и вполне себе стрелки вместо объектов.
>>943888Бамп вопросу.
Я таки не понял как выглядят монады потом, после компиляции.
>>945102Старина.
>>945343Поначитаются своих хаскелей и потом ябуть друг друга забывают русский
>>945195GHC он как Путин.Он сахар превращает в машинный код.
>>945343А может старик?
>>942400Двачую этого. 13 лет. 160 рост. вес не знаю. писюлёк 7 см. занимаюсь в кружке.
Покидайте рус учебников для ньюфагоф начинающих в общем
>>946381Yoba haskell third edition.pdf
>>931424Нет, прямоугольник и квадрат - инстансы разных классов (но могут наследоваться от единого класса polygon)Колесо, ясен хуй, свойство автомобиля. Но ничего не запрещает определить интерфейс для взаимодействия с дорогой.
>>931427Если я пну твою пеку, когда она будет чистую функцию выполнять, значит ли это, что она будет с сайдэффектами?
>>931424Это суть функтопетухов-неосиляторов. Устраивать бессмысленные выяснения, что было раньше - курица или яйцо.Так вот, есть у нас одна элементарнейшая вещь, недоступная вашим убогим пост-процедурным мозгам. Слушай внимательно, недоумок.Все зависит от того, под каким углом ты рассматриваешь систему. Если ты анализируешь какие-нибудь транспортные потоки, например, то выделять у автомобилей колеса вообще может быть бессмысленно. Дело в удобстве - если тебе удобно решать поставленные задачи, сделав колесо свойством машины - ок, делай так. Если свойством дороги, или еще кааким-нибудь внезапным способом - тоже найс. А вся шизофреническая хуета на тему "истинного устройства мира" идет сразу нахуй, у нас тут индустрия, блять, а не кружок по философии.
>>946384>Нет, прямоугольник и квадрат - инстансы разных классов (но могут наследоваться от единого класса polygon)Когда-то на RSDN была эпическая тема насчёт того, что это и есть класс Polygon, а у него два метода, догадайся кокие.
>>946381Можешь просто почитать заголовки разделов статьи вот этой статьи. https://habrahabr.ru/post/303984/Особенно интересно выглядит пятый пункт в свете предыдущих четырех. Еще одно напоминание, что ФП с серьезной наукой, вообще-то, имеет гораздо меньше общего, чем втирает нам функтобыдлота.
>>946436Кстати, этот вариант тоже вполне соответствует концепции ООП.И весьма даже удобен, если, например, полигон часто меняет форму по задаче (в редакторе диаграмм, например).А еще в игрострое есть архитектура ECS (Entity-Component-System), которая тоже является ОО.
>>946384Прямоугольник, если разделить его на два - будет два квадрата. Если же квадрат разделить на два - будет два прямоугольника.
>>946707Ну, доказывай давай, геометр.
Можно ли нормально хаскелить под виндой?
>>946791Конечно. Устанавливаешь ghci platform и готово.
>>946846Было бы готово - не спрашивал бы. Выдаёт не гуглящуюся ошибку.
Поясните за ->. Я правильно понял, что это по сути type constructor, как, например, Bool, только с двумя параметрами, и этот конструктор создает type values не знаю, как правильно назвать, и они в свою очередь являются функциями. Получается, функции - это значения типа ->?
>>947006Нет.
>>947010Почему нет? Есть же инстансы Category (->) и прочей хуйни, прямо как для других типов.
>>947010И kind подходящий ( -> -> *)
>>947015
Тут есть вообще такие, кто Хаскель профессионально использует? Или одни диванные?
>>947144Пишущий в основном на Хаскеле на работе вкатился. Спрашивайте свои ответики.
>>947155Че пишешь? Как начал? Приседаешь?
>>947155>>947006
>>947178В смысле приседаешь?Отвечу вам на вопросы завтра вечером. Сейчас нет времени, да и спать пора.
>>947328>В смысле приседаешь?Шуточка про хаскель и приседание со штангой, врпочем забей. Раз такое дело ты там поподробнее простынку то накатай. Как попал\начал писать инб4: берешь и без задней мысли пишешь, что пишешь, плюсы-минусы со стороны практикующих язык не на метавычислениях факториалов.
>>947155Я б спросил ответик, да у тебя за щекой после хаскиля места не осталось.
>>947503>>948453Здесь вообще одни тролли сидят?То за щеку дают, то какие-то шуточки про бутылку.Зачем я буду вам рассказывать истории, если вы только ржать можете?
>>948766Жирным ебанатам ты отвечаешь, а мой вопрос по теме треда >>947006 почему-то игноришь. Опять все скатилось в говнище.
>>947006Нет
>>947503>приседание со штангойdeadliftы лучшеот становой тяги хуй лучше стоит
>>948766Ну катись к хуям. Лол, зашел на двач и строит из себя целку. Бутыки, хуи ему мерещаться, нет чтобы взять и написать будет хуйней страдать. Аттеншн вхоры на другой доске, занятой.
>>948782Ну вот раз говнище, так и будешь сидеть, в блокноте программировать.А этот хер ушел свою ламповую работку работать.А ты хуи сосешь. А ты сосешь хуи. Хуи ты остался сосать, понял?>>948839Что за бутыки еще? Да аттеншн вхора тут только ты, блять, додик.
>>948855>дядя, ну расскажи как заработать денег, ну позязя, в жопу дам, только расскажи
>>948860Пишущий в основном на Хаскеле в блокноте вкатился.Спрашивайте свои ответики.
>>948872В смысле жирный ебанат?Отвечу вам на вопросы в следующем. Сейчас нет времени, да и ссать хочу.
>>948874Держи нас в курсе
>>948881Да иди соси уже хуй, долбоеб.
>>948910>А ты хуи сосешь.>А ты сосешь хуи>Хуи ты остался сосать, понял?>Да иди соси уже хуйЭко тебя на хуях повернуло, не беснуйся так ,латентный, найдешь себе крепкого хуйца.
>>949175Да иди уже хуй соси, долбоеб. Уличил он меня, сука.
>>949175Программирующая в основном на Хаскеле тян вкатилась.Спрашивайте свои ответики.
>>949209Зарепортил хуесоса
>>949261Себя, что ли?
>>949215Пошла нахуй, шлюха.
>>949273В смысле шлюха?Отвечу вам на вопросы на следующей неделе. Сейчас нет времени, да и к плите пора.>>947006Нет.
>>949306Пишущий в основном на хаскеле на работе вкатился.Задавайте свои ответикиМимо создатель хаскеля
Пишущий в основном на тёмной материи на работе вкатился.Задавайте свои ответики. Мимо создатель вселенной.
>>949346В смысле создатель хаскеля?
>>949355В том же что твой папка. Всмысле вставлял свой капиллярный спрут в математиков и стрелял.
>>949367Ты бы и в собаку стрельнул.
>>949355Отвечу на твой вопрос вследующем релизе. Сейчас нет времени, да и сорцы чет не собрались.>>947006Нет.
>>949367Русский рэп?
>>949388Раунд!!
>>949261Блять, я аж от страха наделал тебе в ротешник
>>947006>и этот конструктор создает type values не знаю, как правильно назватьпросто types. type constructor создает типы.> Получается, функции - это значения типа ->нет типа (->), это конструктор типов с двумя параметрами. применишь его к двум типам (например Foo и Bar) - вот тогда получишь какой-то тип (Foo -> Bar) и значениями этого типа будут функции
Как сделать логи в хаскелле? Это уже побочный эффект?
>>949540Монады же. Передаем функции на вход весь мир, возвращаем измененный
>>949535Спасибо, теперь понятно.Возник еще вопрос, поясни, если знаешь: у меня есть одна небольшая задачка по парсингу определенных спецификаций на естественном языке, там есть иерархическая система вида раздел, подраздел, глава, пункт и т.д. Там должна быть возможность построения что-то типа AST, а также возможность определения ошибок, например, после главы 1 идет глава 3. Текст на естественном языке, но дохуя формальный и имеет достаточно четкую структуру, соответственно, можно слабать какую-никакую грамматику. Подойдет ли для этого parsec, или я совсем ебанутый и там что-то другое нужно использовать?
>>949662яву бери
>>949668В смысле яву? На регэкспах парсить?
>>949669Ну да, как диды, хуле тебе от хаскеля надо?
>>949672Да выебнуться хотелось, parser combinators, вот это вот все. Хотя и в джаве есть что-то подобное, типа jparsec.
>>949662Нет.
>>949675Ты там учебник по природоведению собрался, что ли, парсить, слышишь, долбоеб?Выпендриться хаскелем он собрался, задрот хуев.
>>949692>Выпендриться хаскелем он собралсяКак что-то плохое...
>>949215Почему при построении котегории, где объекты – типы данных, а морфизмы – функции, из варианта типизированного лямбда-исчисления на комбинаторах получается замкнутая симитричная моноидальная катигория (подобно Hilb, где объекты – канечномерные гильбертовы пространства с обычным тензорным произведением, а морфизмы – линейные операторы), но не декартова, каковой является Set?
>>949696Вырастешь, поймешь...
>>949388Дада, это из раунда бабки.
>>949738Вырос и ссу за шиворот всем прогматикам 9999 уровня и пишу на том, на чем интереснее
>>949662да подойдетесть еще megaparsec он по новее
>>949946Двачую. А работка не нужна, нам и у мамки хорошо.
>>949721мб потому что x::Intx=undefinedне?
>>949738Етат спидараший езык - как хачу так и мелю, хех.
>>950277Чувак а зачем ты с ним разговариваешь? Он же тролль простой. Необразованный. Давай лучше за хаскель поговорим. Ты давно программируешь на хаскиле?
А напомните-ка, чем энтон ваш хачкель лучше православного дидовского лиспа?Я вот щас свой лисп пишу, со статической типизацией.
>>950311Ч И С Т О Т АИСТОТА
Так как я явамакак то обмазываюсь кложуром. Этот ваш лисп пока не очень понятно где применять. Напишите чтоли пару саксес стори внедрения функциональной парадигмы в энторпрайз или хотя бы в вебе. Сразу оговорюсь. Интересуют только чисто функциональные языки. Диалекты лиспа, хачкель. Всякая хуйня С поддержкой функциональной парадигмы типа скалы не интересны. Асинхронные неблокирующие сокеты я и на яве сделаю. Интересно именно внедрение в бизнеслогику
>>950311Кроме чистоты функций можно вспомнить еще частичное применение функции, композицию функции, неизменяемость данных, монады-монадочки и ленивые вычисления. Еще можешь посмотреть на комбинаторное программирование, стэковые языки. Хотя, надыбал еще такой красочный pdf с мемасиками на 83 страницы почему Хаскель хороший: http://camlunity.ru/swap/haskell/whyhaskell.pdf
>>950311Сводяшего с ума синтаксиса уже достаточно, чтобы не пользоваться лиспом.
Напомните-ка, как в хачелях изящно делается валидация?Дано: кортеж вида (Just "YOBA", Nothing, Just ""). Валидность третьего поля может зависеть от содержимого второго.Ожидаемый результат:— Для невалидного значения: ["2 is Nothing", "3 is an empty string"];— Для валидного значения: { one: "YOBA", two: "second value", three: "third value" }.Спецификация неполная, но суть должна быть ясна. Как сделать это кривым и многословным образом очевидно. Как сделать это с помощью красивых зигохистопрепроморфных аппликативных пандорических функторов я не понимаю.
>>950349Но я и на лиспе могу писать в чистом стиле, если не буду применять переменные.И на хаскеле - в грязном с монадой IO.>>950404>частичное применение функции>композицию функции>неизменяемость данных>ленивые вычисленияНо это все есть в Лиспе.>>950419По крайней мере по лисповскому коду логика понятна. А по хаскалевскому - нет, даже перл и тот читабельнее.
>>950399Ну мы в конторе заменили весь старый JS стек на ClojureScript + Reagent + Garden, полёт нормальный. Был адовый ебаторий со стандартным реакт стеком, теперь ебаторий значительно меньше. Такая вот стори. Хотя можно было бы заменить на Elm, но у нас все идейные динамикопетушки, так что вот так.
>>950399ERLANG же
>>950509>По крайней мере по лисповскому коду логика понятна. А по хаскалевскому - нет, даже перл и тот читабельнее. Это ты просто еще не разобрался и не привык. В хаскеле гораздо читабельнее код и как правило короче. Даже те мозговыносящие вначале конструкции это дело привычки и показывают что ты пока плохо усвоил хачкель. В лиспе все эти бесконечные вложения, вложений вложений уж точно менее читабельны.
>>950519Очень много сокращений, поэтому ничего не понятно. Приходится в голове код достраивать.
Реально ли написать браузер (включая компоненты типа интерпретатора джаваскрипта) на haskell? Какая структура такого кода бы была? И видимо, надо много использовать монад или нет? Думаю поглядывать в код presto.
>>950578Было бы интересно посмотреть.Браузер - одно из самых сложных десктопных приложений, заебешься писать, чтобы он полностью понимал все стандарты и при этом еще не тормозил.Может, борщехлебы продемонстрируют на таком примере преимущество уличной магии функционального кода? Будет намного убедительнее сотен паст.
>>950578Оказалось, зачатки уже есть! https://hsbrowser.wordpress.com/3s-functional-web-browser/
>>950509Где можно посмотреть твой проект?
>>950399Спецэффекты для Властелина колец рисовали в пакете для работы с трехмерной графикой, написанном на лиспе - Izware Mirai: http://franz.com/success/customer_apps/animation_graphics/izware.lhtml
>>950645Есть опенсорсный клон одной из программ в этом пакете, написанный на эрланге: http://www.wings3d.com/
>>950512Что эрланг? Кроме создания конечных автоматов и работы с соединениями на что он годен еше? Работа со строками как листами через паттернматчинг и фолды хуелды? По мне так не серьезно. Кроме как коннекшен пул использовать эрланг я придумать задач не могу. >>950510Сорян но это спорное решение. Могли зоть на рельсы с джангой перевести. Причем тут функциональная парадигма? Я именно о использовании парадигмы спрашиваю а не языков. Просто на той же явке я могу любую задачу решить с помощью ооп и вообще без Функциональщины. Мне бы пример уровня. Вот мы на бекенде парсили джейсоны потоковыми парсерами, а теперь на лиспе парсим в 20 раз быстрее и код проще
>>950654> создания конечных автоматовЧто ж ты делаешь!> и работы с соединениямиАхахахахаха...> на рельсы с джангой> клиентсайд...прекрати!> Причем тут функциональная парадигма> реактЧТО Ж ТЫ ДЕЛАЕШЬ АХАХА ПРЕКРАТИ Причем хочу заметить, что "при чем" пишется через пробел.
>>950654>Что эрланг? >саксес стори внедрения функциональной парадигмы в энторпрайзА других и нет, кроме Эрланга и Скалы.
>>950688Не понимаю что ты порвался на пустом месте, но туши пукан истеричка. >>950691Скала не чистый функциональный язык. Я о ней сразу сказал. Эрланг нишевый и особо задач кроме тех что я описал выше у него нет. Я все еще жду примера. Как например лисп используют на бэкенде для парсинга, семантического анализа, ии или нейросеточек.
>>950688Двачую адеквата, "причем" нужно было через пробел
>>950702А что используют для ии, нейросеточек и семантического анализа? inb4: petuxon
>>950707До Питона когда-то использовали Common Lisp.
>>950727Пичалька, что питон сейчас.
>>950728>>950727В чем пичалька? Я не ратую за питухон, но поясните что было такого особенного в лиспе, что нужно было искуственному интеллекту? Единственный мнимое преимущество это гомоиконность, если ты хотел своего киборга на ГЕНЕТИЧЕСКИХ АЛГОРИТМАХ. Но в 2017 генетическими баттплагами только самые отбитые пользуются.Нейронки, классификаторы, кластеризаторы и прочие распознаватели паттернов т.е. 99% современного мля нихуя от лиспа не получили бы. Кроме гемора с привинчиванием сбоку к анусу 9000 библиотек, написанных не на лиспе.
>>950738>Единственный мнимое преимущество это гомоиконность, если ты хотел своего киборга на ГЕНЕТИЧЕСКИХ АЛГОРИТМАХДело не в них. В 60-е считалось, что интеллект это такой символьный процессор. Отсюда и гомоиконный лисп.>Нейронки, классификаторы, кластеризаторы и прочие распознаватели паттернов т.е. 99% современного мля нихуя от лиспа не получили бы.На самом деле учитывая что современные либы для нейронок это специализированные CAS, получили бы. Просто люди выбрали "более сложно устроенная библиотека, зато более простой вызывающий код", а не наоборот.
>>950654>Могли зоть на рельсы с джангой перевести.Хм, я думал что из контекста тебе будет понятно, что речь шла про веб-фронтенд, какие рельсы с джангами, о чём ты.Ну так я ответить тебе не могу, так как не понимаю о чём ты толком спрашиваешь. Какие теоретически приимущества даёт ФП? На эту тему в сети материала навалом. Какие приимущества оно даёт в конкретной области, например, в веб-фронтенде? На эту тему тоже много статей, тот же Tonsky из русскоязычных нормально пишет конкретно по веб-фронтенду. Какие конкретные вещи были заменены на другие и дали за счёт этого лучший результат? Ну тут, на мой взгляд, вопрос вкорне неправильный, и сразу детектит неправильный ход мысли у спрашивающего, от чего отвечать ещё больше не хочется. Решение конкретной задачи из области прикладного программирования (типа выгрузить вооон тот отчёт, или распарсить вооон ту хуйю) выполняется 10 разными языками с 10 приблзиительно одинаковыми результатами, разницы нет. То что тебе на языкнейм удалось решить прикладную задачу так, что она стала выполнятся в 20 раз быстрее, чем на языкнейм2, значит только, что решение её на языкнейм2 было выполнено из рук вон плохо. Железо работает одинаково, под капотом выполняется обычный низкоуровневый код, рост увровня абстракции может только замедлять и усложнять выполнение программ, а не наоборот. Приимущества выбора какой либо принципиальной модели, в частности ФП, в прикладном программировании определяются исходя из куда более сложных и одновременно при этом довольно банальных факторов, чем решение сцаной конкретной задачи как в олипиадке, параметры решения которой можно было бы мерять такими показателями как скорость выполнения кода, кол-во строк и прочая хуйня. Так что мой ответ будет такой: мы используем реакт через реагент и кложу для устраниния проблем, которые постоянно возникают при разработке веб-приложений с использованием стандартных подходов базирующихся на чистом реакт стеке или на упаси боже джава-лайк ангуляре.
>>950702> обоссали, высмеяли> "туши пукан!!"
>>951317Эти маняпроекции. У тебя шизофрения развилась от изучения хаскеля или ты стал изучать хаскель из-за своей шизофрении?
>>951321> маняпроекцииКакой рекурсивный у тебя пост, умничка.
Почему Num не наследуется от Ord?
>>953806А какой там порядок у комплексных чисел?
>>953844Ты прав. А что по поводу Eq?
>>953855А что с ним?
>>953844Кстати математики там ничего не пытались придумывать чтобы ввести ординалы в комплексные числа?
>>953871Почему Num не наследуется от Eq?
>>953887http://stackoverflow.com/a/27563283
>>953886>ординалыЗначение знаешь?
>>953889Ну значит не знаю, хуй с ним, упорядочить комплексные числа пробовали?
>>953888>Mathematical side note: the Num class generally models algebraic structures called rings.Тогда я не понимаю смысл названия Num. Почему они не назвали его Ring?
>>953947Любое множество можно вполне упорядочить.>>953952Э, ле. В хаскеле, как любом другом промышленном языке, много легаси. Короче, так исторически сложилось.
>>953952Ты бы еще спросил почему монады не являются аппликативными функторами.
>>927601>И да, всё тобой перечисленное глотает пыль на обочинеТолько вот у хаскелля ебаный толстый рантайм, хуевая производительность и таки непонятный синтаксис, причем он непонятен не потому что там много каких-то ебо-символов, а именно потому что Хаскелль вводит кучу всякой хуйни, которая даже не существует в реальном мире.Т.е. нет сомнений, что на нем можно как-то реализовать почти любую задачу, вопрос будет только в оптимальности конечного результата, в затраченном времени и возможности все это поддерживать.
Господа, что скажете по поводу OCaml? Несколько другая парадигма, но, как я смотрю по вакансиям, более популярная.
>>954020>а именно потому что Хаскелль вводит кучу всякой хуйни, которая даже не существует в реальном миреНо ведь монады существуют в астрале, про них еще Джордано Бруно писал.
>>954020>которая даже не существует в реальном мире.Соси хуй, быдло.
>>954024>OCaml, Haskell>вакансиилол
>>954024Потому что окемл мультипарадигменный. Хоть в указатели сри почти как в сишечке, потому ирл если и выбирается ФЯ то это либо окамл, либо скала (та же опера).>>954284Ты конечно удивишься, но такие ирл существуют. Если сравнивать с галерами, где текучка 50макак/неделя — то про кол-во вакансий конечно говорить не приходится, но от того они в этой реальности не исчезают.
>>954024>Господа, что скажете по поводу OCaml?Тредов тонет.
>>954595Так создай, если шаришь.
>>954602Ради 2,5 анона вместе со мной? Он же ктонет.
>>954587>Ты конечно удивишься, но такие ирл существуют. Если сравнивать с галерами, где текучка 50макак/неделя — то про кол-во вакансий конечно говорить не приходится, но от того они в этой реальности не исчезают. Сколько вакансий этих и сколько поехавших придурков, задрачивающих хацкиль? Думаю, первых раз в 999 меньше, чем вторых.
>>954626>сколько поехавших придурков, задрачивающих хацкиль99% из них дальше написания факториала не продвинулись.
>>954636Продвинулся тебе за щеку. Проверяй.
>>954602>>954616Я про ОС-, а не 2ch-треды.
>>954639Проверил у твоей мамки за щекой @ обнаружил там свой хуй.
Тут был анон, который использует Хаскель на работе. Можешь рассказать, что за проект, какие задачи решаешь, хотя бы примерно. Пишешь только на Хаскеле или еще какие-то языки используешь?
>>954626Я хоть слово написал про хачкель? Он даже в мире ФЯ нужен только для факториалов с красивой чистотой.
>>954639доверяй но проверяй
>>954661>The Strats team at Standard Chartered has an open position for a typed functional programming developer, based in Singapore.>We have around 2.5 million lines of Haskell, and our own Haskell compiler. In this context we look for skill and taste in typed functional programming to capture and abstract over complex, messy systems.>You would join an existing team of 30 Haskell developers in Singapore or London. Generally our roles involve directly working with traders to automate their work and improve their efficiency. We use Haskell for all tasks. Either GHC Haskell or our own (“Mu”) implementation, and this is a rare chance to join a large, experienced Haskell dev team.
>>954675>>We have around 2.5 million lines of bullshitОк, один хипстернутый банк - это доказательство, ты победил.Почему-то мне такой же хуй на жуйке полгода назад тыкал этим же банком, видимо, это совпадение, ведь с тех пор миллионы компаний и молодых стартапов внедрили у себя хаскелл, а не какой-нибудь там б-гомерзкий Go или другую парашу.
>>954712Хуки ты раскукарекался? Ты написал:>Он даже в мире ФЯ нужен только для факториалов с красивой чистотой.Я это опроверг. Хули бесишься?
>>954712https://www.janestreet.com - Вот еще конторка, тоже используют Хаскель. Еще я находил сайт Хаскель-консультантов, сейчас лень искать. Спрос есть, хоть и очень небольшой.
>>954718Это не я написал, но твое "опровежрение" - хуйня из-под коня.>>954723Охуеть. А я находил сайт чисто по haskell jobs.Спрос небольшой потому что хуита.
>>954013почти год как являются
>>954723Ты чо-то попутал, питушок.
Кто-то готов делать ИИ на хаскелле выслушивая разных шизиков вроде меня?
Пиздец, башка от хачкиля пухнет, сейчас тупил над Y-комбинатором.
>>955261>Занимался бесполезной дрочкойорм провел время?
>>955261Та, это всё херня. Вот я тупил над ним в рамках чистой комбинаторной логики по учебнику Вольфенгагена, вот это да.
>>955272>в рамках чистой комбинаторной логикиКак по-твоему, стоит комбинаторную логику задрочить? Прибавляется ли понимание каких-то вещей?
>>955280Чистую кобмнаторную логику - нет.А вот книгу "Комбинаторная логика в программировании" В.Э.Вольфенгагена - это может быть интересно, там типизированная комбинаторная логика погружённая в теорию категорий же. Но от неё тоже пользы особо не много, просто интересно, там самые основы про категориальную абстрактную машину и такую вот хуйню всякую.
>>955289А в целом, по теме какую литературу можешь посоветовать? В данный момент читаю Allen, Moronuki - Haskell Programming, конца и края ей не видно, бoлее 1000 страниц, лол.
>>954723Ты просто тупорылый петушок, вот я тебе что скажу. Не понимаешь одной очевидной вещи, которая прямо-таки очевидна, да.
>>955488Нахуй пошел, скот. Настоебал уже своими нравоучениями.
>>955937Ты ноешь про нравоучения потому, что воспринимаешь меня, как батю.Сыч, пошел бы ты, что ли, в футбик погонял, или на макбук заработал, а то так и останешься со своим хуяскилем кукарекать под прыщиксом.
>>956005Ебать, что ты несешь. Тебя в детстве родители не били?Я вообще-то из центральной Европки вещаю, где уже много лет работаю погромистом. А Хаскель учу по фану. Так что ты по всем статьям обосрался.
>>956039В какой стране работаешь?На чем пишешь?другой анон
>>956061Исландия. Пишу на Коболе.
>>956061В Украине.Пишу на ебаном.айти.на 7 пыхе, если серьезно. это, между прочим, не смешно!>>956073Дизрегард, это самозванец.
>>956073Обколюца своим хаскилем, и ябуть друх дружку в жопы в центральноевропейской исландии.
>>956061DeutschlandJava
>>956119Анончик, расскажи, как там с арендой жилья.Дорого ли, долго ли искать.
>>956220Смотря где. В городах типа Мюнхена или Франкфурта снять проблематично, особенно если квартира хорошая и в хорошем районе. Понаеху как правило помогает фирма, в которой он работает. По ценам - зависит от потребностей, я плачу 900 за двушку. Если прибавить интернет и электричество, то как раз около штуки набегает.
как избежать Warning:Tab character ?
>>957045Не использовать табы, очевидно же.
Ребята, есть какие задачки по хаскелю?
>>963560в хаскеллбуке есть задачки http://haskellbook.com/
>>963560https://wiki.haskell.org/H-99:_Ninety-Nine_Haskell_Problems
>>963766>>963792Благодарю
>>916056 (OP)Аноны, я начал разбираться с хачкелем. До этого си ковырял. Норм, очень даже норм.
>>916056 (OP)тред уплыл, создайте новый
Аноны поделитесь пжл информацией по types & typeclases! А именно: я хочу перечисление всех тайпкласов и всех типов, которые в них входят. Идеально подошла бы таблица.
>>965955Ебанутый? что значит "всех типов и тайпклассов"? Если тебе нужны вообще все - грепай хакадж или лучше гитхаб. Нет? тайпклассопедия.
>>966079всмысле их дохуя??
>>966079может ты не так понял? я ищу что-то типа: в тайпкласс Floating входят типы Floating и Double и так для остальных
>>966151Первая картинка в гугле по запросу Haskell typeclass diagram.
>>966151>в тайпкласс Floating входят типы Floating и Double и так для остальныхghci :i Floating
Приучаю обезьян к монадам. Работает в половине случаев.Это тайпскрипт если что.
>>966473getDef это fromMaybe офк
>>966473Где ты тут монады увидел?
>>966473Сука, какое же вырвиглазное говно.
>>966619getSitemaps :: Maybe Tab -> Maybe (SitemapTree FolderPath) -> Maybe Int -> Maybe Int -> Event [Sitemap]getSitemaps mtab msitemaptree mskip mtake = fromMaybe (pure []) $ do sitemaptree <- msitemaptree fmap (\tab -> getFolderSitemaps (tab^.tabId) (sitemaptree^.value.path) skip take) mtab
>>966473А форматировать нормально код ты не приучаешь их?Или это ты сам эту хуйню высрал? Ну тогда у меня для тебя плохие новости, макака - это ты.
Поясните, во что разворачивается эта хуйня:fibs = 1 : scanl (+) 1 fibsНе сам результат, а как происходит вычисление. Я всю голову сломал. То есть, 1 :, потом идет scanl, но он вызывает fibs, где снова идет 1:. Как это работает?
>>916056 (OP)Суперговно, язык для поехавших. Пишу и плююсь, блядь. (-1), охуеть, блядь, /= пиздец, блядь.