Этого треда уже нет.
Это копия, сохраненная 23 мая 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
9 Кб, 294x420
Haskell-тред #4 Haskell-тред !BfMALYlWvw #916056 В конец треда | Веб
Покойный старина Неш благословляет этот тред.

Литература:
learn haskell for a great good
документация.
#2 #916090
>>916056 (OP)
я учил его хуйню на теории игр, ехал головой и понимал это дерьмо

а теперь я жалкая веб-макака, мне очень стыдно
кто-нибудь, утешьте меня
1162 Кб, 2448x3264
#3 #916164
>>916056 (OP)
Хули такая скудная шапка, а, ПИДР?

Вот нормальный список литературы:
Basics - http://learnyouahaskell.com/chapters
Medium - http://book.realworldhaskell.org/read
Concurrency - http://chimera.labs.oreilly.com/books/1230000000929/index.html
Web - http://www.yesodweb.com/book
916186
#4 #916186
>>916164
Ждал тебя золотце потому что.
#5 #916195
Зачем ирл может быть нужен хачкиль, кроме как для развлечения нескучным синтаксисом?

Для всякой паралельной еботы и веба есть эрланги с элексирами.
Для всякой требовательной к перформансу (не хард риалтайм конешно) еботы есть окамл (для некрофилов есть всякие диалекты sml-а, причем даже без сборщиков).
Для совсем низкоуровенного говнища с байтами и кишками есть руст.
Для всевозможной ебли с пруфами, завтипами и прочей ебатой про корректность есть идрис, агда, коки и др.
#6 #916206
>>916195

> низкоуровневое говнище с байтами


> Rust


Серьезно?
916208
#7 #916207
Просто оставлю здесь мнение байтоеба с васма о хаскеле.

http://ziyoumin.livejournal.com/673.html
916214
#8 #916208
>>916206
А в чем я не прав-то? Язык про то, как бы безопасно юзать ссылочки ублажая компилятор. Все страдания и болевые порывы там только от его цели.
#9 #916214
>>916207

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


Интересный байтойоб. Что чаще происходит обратное при простейших аллокациях, или эти деревья в 2-1 строчки будут в десяток раз медленнее его варианта даже не задумался. хотя судя по тому что "он с васма" это очередной пейсатель троянов и кряков, чему удивлятся. Еще кстати порадовало "все функции принимают только один аргумент".
916281921628921934
#10 #916281
>>916214
У него там еще запезь шикарная:

Почти всегда разговор с девушкой - это трёп, лишенный всяческого смысла. Вчера, нопример, спорел с одной из представительнец противоположного пола. Получилось чото типа:
Я: - блаблабла почти всегда блаблабла
Она: - ПОЧТИ!!!11одинодин А значит не всегда.
Вот тут и происходет наёб, "почти всегда" превращается в "не всегда". Вроде и мелочь, но если прикинуть, то серъезная подмена понятий. "почти всегда" - это "почти в 100% случаев", то есть в 100%-Х% случаев, где Х<<50%. А вот "не всегда" может быть сказано и при 1% и при 0,000001%, вобщем если есть хотя бы один прецендент.
Ну и железное возражение девушке:
Я: - "почти всегда" - далеко не то же самое, что "не всегда"
Она: - думай как хочешь.
941858
#11 #916292
>>916056 (OP)
Наконец-то единственный годный тред в этом разделе.
#12 #916328
>>916195
Для изучения функционального программирования в правильном его виде.
921339
#13 #920957
непроебамп
#14 #921276
>>916195

> эрланги с элексирами.


Динамика сакс.
921339
#15 #921339
>>916328
Лул, ебать довен.
>>921276
Если пишешь для себя — то, конешно, да. Если это какая-то реальная работа где нужно успевать делать хуяк-хуяк и трясти деньги с инвесторов и пользователей раньше конкурентов — ниет. Ну разве что позволяющие делать хуяк-хуяк вроде окемла.
#16 #921628
>>916214

>все функции принимают только один аргумент


Не понял. Разве нет? a -> a -> a это не a -> (a -> a)?
921970
#18 #921934
>>916214

>все функции принимают только один аргумент


Што не так?
921970
#19 #921970
>>921934
>>921628
Ты долбоёб прост
921988
#20 #921988
>>921970
HaskellWiki: "In Haskell, all functions are considered curried: That is, all functions in Haskell take just one argument"
Так что пройди нахуй.
#21 #921989
>>916056 (OP)
блин, как же хочется изучить хаскель. Слыхал, это делается всего за месяц, можно сделать одно маленькое приложение на хаскелле и всякие гуглы-яндексы тебя с руками оторвут.
sage #22 #923468
>>916195
Для описания сколь-нибудь сложных предметных областей. Также склоняюсь к тому что скала нужна для этого же (особенно если есть зависимость на jvm). То есть для 90% проектов использование этих языков несет только лишние риски, как кстати и использование эрланга, смлей и раста, хотя и для них есть определенные области применимости.
мимоскалаёб
925394
#23 #925394
>>923468

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


У них-то они есть, а вот у хачкеля — нет. Вот вообще. Он прожорливее жавы (от гц до процессора, быстрый код кроме как хеками с ffi не пердолится), паралелится хуже эрланга (и хуяк хуяк для продукшина не сделоть), заметно медленнее того же окемла (например парсеры — посмотри сравнения любого menhir/camlp4 с каким нибудь атоопарсеком — там отсос в десятки раз везде). Да блять, в и из окамла хоть можно туда сюда экстракить всякие коки и получать верифицированный кодес, а тут...
925514925589927557
#24 #925514
>>925394
Avoid Success at All Costs as it is.
#25 #925589
>>925394
Ты просто не осилил.
#26 #927543
Что скажите за язык Clean и его, кхм, альтернативу монадам?
#27 #927557
>>925394
Все таки у хачкеля нашлось одно применение: быть моделью для более современных языков.
Пюрэ и эльм по-своему взяли из него все самое лучшее, давая возможность вебмакакам писать супернадежный фронт(а пюрэшку я сейчас и для бэка начинаю использовать).
#28 #927601
>>916195
Хаскель нужен только для того, чтобы программировать на нормальном языке.

И да, всё тобой перечисленное глотает пыль на обочине, кроме пруфассистантов. Но Хаскель как бы не пруфассистант и не конкурирует с ними.
954020
#29 #928298
>>916195
Хаскель - это как марксизм-коммунизм, хорош на бумаге. Учебники почитать, пейперы, тайпклассопедию, на форумах попиздеть, на конференциях повыступать - лучшая область применения хаскеля. Предел его возможностей - библиотекописательство, причём либы должны быть максимально оторванны от конкретных задач, даже от областей - чем дальше тем лучше, чтоб мерзкий контрреволюционный realworld не засырал прекрасный алгебраичный и стройны гаскиль-код. Но на этом всё. Написание на нём конкретного кода конкретного приложения или фреймворка, и жизнь с этим добром в продакшене - это область где хаскель проигрывает почти всему мейстриму и даже не мейнстриму, и именно поэтому на хаскеле СОФТАТОНЕТ и НЕБУДЕТ. Щутка, это всё из-за заговора корпораций.
928328
#30 #928328
>>928298
Вы прослушали мнение человека, не осилившего Хаскель.
928398928400
#31 #928333
все до чего добираются матанопетухи превращается в говно
928347
907 Кб, 960x720
#32 #928344
Я чот таки не могу осилить монады. Монады это тупо контейнер для взаимодействия с внешним миром, где все идет по порядку? Это типа шлюза в космическом корабле? Космонавт, когда надо выйти в открытый
космос вне корабля, он:
1. Открывает люк, определим его как первый.
2. Переходит в шлюзовую комнату.
3. Закрывает первый люк.
4. Открывает люк выхода из космического корабля, можно определить как второй.
5. Выходит в открытый космос.

Впрочем, нашел и такое:

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

Новый шлюз должен состоять из трёх стенок расположенных друг к другу под углом 120о и закреплённые на одной подвижной оси.

Космонавт располагается между двух стенок и закрепляется фалом. После этого производится поворот системы на 180о и космонавт оказывается в открытом космическом пространстве. Затем он покидает шлюзовую камеру и по специальным трапам из скоб перемещается на внешний корпус корабля или станции, используя систему фалов, скоб и зеркальце.

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

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

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

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

Альнитак. Екатеринбург. 14.10.2009
Источник: http://volna56.narod.ru/shluz2/shluz4.htm

Зачем я это написал?
907 Кб, 960x720
#32 #928344
Я чот таки не могу осилить монады. Монады это тупо контейнер для взаимодействия с внешним миром, где все идет по порядку? Это типа шлюза в космическом корабле? Космонавт, когда надо выйти в открытый
космос вне корабля, он:
1. Открывает люк, определим его как первый.
2. Переходит в шлюзовую комнату.
3. Закрывает первый люк.
4. Открывает люк выхода из космического корабля, можно определить как второй.
5. Выходит в открытый космос.

Впрочем, нашел и такое:

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

Новый шлюз должен состоять из трёх стенок расположенных друг к другу под углом 120о и закреплённые на одной подвижной оси.

Космонавт располагается между двух стенок и закрепляется фалом. После этого производится поворот системы на 180о и космонавт оказывается в открытом космическом пространстве. Затем он покидает шлюзовую камеру и по специальным трапам из скоб перемещается на внешний корпус корабля или станции, используя систему фалов, скоб и зеркальце.

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

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

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

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

Альнитак. Екатеринбург. 14.10.2009
Источник: http://volna56.narod.ru/shluz2/shluz4.htm

Зачем я это написал?
#33 #928347
>>928333
Всё, что делают инженеры - унылое говно, особенно, когда они пытаются показать своё знание математики
928405
#34 #928398
>>928328
Ну так запости ссылочку на гитхаб на свои восхитительные проекты на Хаскеле, осиливший.
931420
#35 #928400
>>928328

>Вы прослушали мнение человека, не осилившего труды Карла Маркса в оригинале

931421
#36 #928405
>>928347
ну так выкинь свой компуктер в окно и кресло на котором сидишь заодно и пиздуй жить в пещеру там будешь заниматься систематизацией и формал сцайнсом, для этого достаточно иметь палку-ковырялку и на чём ей царапать
#37 #928413
Посоны, мечтаю упороться хаскелем, тк его советуют всем ньюфагам, типа работы дохрена, зп высокие, вкатиться проще некуда. Как мне упороться хаскелем и не сойти с ума?
928559
#38 #928468
А давайте я закачусь в тред с обоснованной критикой хаскеля и почему его не используют?

Ленивость. Каждая лекция о хаскеле содержит детальное разъяснение как оно внутри считается и разворачивается. И хаскелята друг дружку унижают за незнание точного порядка ленивой эвалюации произвольного выражения. Всё бы с ней ничего, но наступает потребность написать производительную реализацию чего бы там ни было. И здесь начинаются пляски с выбором fold, подстановкой seq и прочим дерьмом. Сортировочка с глагне выглядит хорошо, но крайне неоптимальна.

Сборка мусора, ебля с боксингом-анбоксингом, полный ворох проблем. А ведь так хорошо начиналось, нас кормили обещаниями что компилятор ну очень умный и всё соптимизирует за нас. Как бы не так. Когда приходит время выебать байты всю красоту куда-то сдувает, подключается ещё больше распорок из ghc и мы пишем уже почти как на си.

Пересборка мира на каждый чих. Неспособность нормально формировать dll. Cabal hell с постоянно ломающейся совместимостью пакаджей. Здесь мощь абстракций ударила обратной стороной.

Теоркат требует охуительной подготовки. Большинство хасклят нихуяшеньки не понимают ни монады, ни всю эту прилагающуюся чепуху.

В сухом остатке получаем эдакий найс трай, хаскель интересный, несёт в себе новизну, предлагает альтернативный подход, но всё это наполовину банально не работает, либо требует недюжинных ментальных усилий для решения казалось бы совсем простых задач.
928642931422
#39 #928559
>>928413
Никак. Ты точно сойдешь с ума.
#40 #928642
>>928468
Хаскелль и не стремится быть производительным. Писать на нем полноценное приложение не стоит, однако он подходит для прототипирования бизнес-логики, позволяя сконцентрироваться на том, что нужно писать, а не как.

Потому что нефиг ебать байты на нем, это не Си и не Раст.
928652
#41 #928652
>>928642

>позволяя сконцентрироваться на том, что нужно писать


В результате обычно ты так концентрируешься, что про бизнес-логику забываешь.
928674
#42 #928674
>>928652
Если ты забываешь про бизнес-логику, то это явно не проблема языка.
928701
#43 #928701
>>928674
Проблема языка - это когда его используют пара аутистов для написания факториалов.
931423
#44 #928820
Потерял ФП-тред, так что спрошу здесь. Я не понимаю, что такое "ФП". Вот ООП мы имеет программу, которая состоит из объектов - реализаций классов и их иерархию засчёт наследования. Эта концепция легко ложится на наше человеческое понимание мира. Имею небольшой опыт хаскелля (в основном задачки из учебников и курсов на <10 строк) и у меня нет понимания, что такое фп. Анонимные функции? Использование всяких map, filter вместо циклов? Так это есть и в языке с ООП головного мозга C# за счёт LINQ и Делегатов. Да, c# не может так оптимизировать рекурсию, как божественный GHC. Иммутабельность? Божественная система типов? Так это есть в том же Rust, который не является функциональным, да и в Lisp типизация динамическая.
Как понять, что такое ФП?
#45 #928824
>>928820
Функцианальное программирование - это функции (высшего порядка). Элементы ФП сейчас есть почти в каждом современном языке программирования. И в Java, и в C#, и даже в JS. Равно как и элементы ООП есть в Хаскелле, но реализованы тоже через функции, поэтому он чисто функциональный язык.
930605
10 Кб, 535x368
#46 #928825
>>928820

>Как понять, что такое ФП?


Это ещё одна концепция, и она тоже легко ложится на наше человеческое понимание мира: «сунул, вынул, да пошёл».
#47 #928956
>>928820
ФП - это reference transparenty
#48 #928957
>>928820

>Эта концепция легко ложится на наше человеческое понимание мира.


О, дружище, "ООП хорошо для GUI" - это примерно такой же спид, как и "ООП хорошо для всего" - когда программисты обожглись об ООП, но проблемы гуйни глубже формошлёпства не исследовали, поэтому решили "ну ладно, ООП для %моей_предметной_области% - говно, но ведь КНОПКА - это же объект!!1". Ты ведь понимаешь, о чем я, а уёбок? Повторю другими словами на всякий случай: когда ты был маленьким и глупым и нихуя не шарил в своей предметной области, ты думал, что "всё есть (некий абстрактный) объект (про который я нихуя не знаю)" и что ООП идеально этот факт моделирует. Потом ты немного подрос и поумнел, и выделил в своей области множество взаимосвязей и закономерностей. И она наполнилась морфизмами, функторами, отражениями, естественными преобразованиями, пределами, копределами, сопряжениями и прочими знаниями, для моделирования которых убогое ООП ну никак не подходит. А гуй для тебя так и остался той областью, в которой ты нихуя не шаришь. Так вот, уёбок, не надо экстраполировать свою самоуверенность на все отрасли человеческой деятельности. Если ты охуенный спец по обработке сигналов, это еще не значит, что ты охуенный спец по чистке туалетов или лепке крудов. И если ты не видишь в лепке крудов никаких закономерностей, это еще не значит, что их там нет, и что любой виджет есть объект и не более того. Закономерностей там более чем дохуя. Я вот с ходу могу сказать, что гуйню лучше моделировать стрелками, чем объектами, а истинный спец по гуи тебе наверняка категорий пять навернёт, охватывающих визуализацию, валидацию, интернационализацию и локализацию, лейаут, помощь людям с ограниченными возможностями и хуй знает, что там еще может быть.. Поэтому пиши про то, что знаешь, а про гуй пусть лучше спецы по гуи напишут, от них то мы и узнаем, столь ли там хорошо ООП, или приходится еще каким-нибудь xml-ем в жопу поябываться.
928965
#49 #928960
>>928820

>та концепция легко ложится на наше человеческое понимание мира.


Для «объекта» не существует формального определения. ООП вообще никак не формализовано. Это набор ad hoc практик, интуиций и советов бывалых охотников в стиле «чтобы копье лучше било мамонта, его должна обоссать девственица в полнолуние».
932234
#50 #928965
>>928957

>но проблемы гуйни глубже формошлёпства не исследовали


Зато малолетний дебил, писавший эту тупую пасту исследовал, ага. Пусть свою диссертацию покажет, епт.

>Я вот с ходу могу сказать, что гуйню лучше моделировать стрелками, чем объектами,


Без реализации уровня Qt (или хотя бы дельфийского VCL) ты с ходу проследуешь под шконарь со своим кукареканием.

> а истинный спец по гуи


Пошлет нахуй борщепетухов и скажет, что лучше ООП ничего для гуя не придумано.
#51 #929004
>>928965

>этот багет портвешкового слюсаря на высеченную в граните истину


ммммм))
929081
#52 #929055
Новые монады завезли уже?
932234
#53 #929081
>>929004
Тебя явно ткнули тут носом в "а как оно на практике?"

> Без реализации уровня Qt (или хотя бы дельфийского VCL) ты с ходу проследуешь под шконарь


Нормальный естественный вопрос инженера-ремесленника, коими являются профессиональные программисты.
А ты вместо ответа взял и обосрался. Какие тут выводы можно сделать?
мимоанон
#54 #929292
Поясните, пожалуйста, что не так и как надо:

Prelude> :type ['1'] ++ ['2']
['1'] ++ ['2'] :: [Char]
Prelude> :type "12"
"12" :: [Char]
Prelude> read "12" :: Int
12
Prelude> 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'] :: Int
Prelude>
929297929788
#55 #929297
>>929292
Кажется у read приоритет тут больше чем у ++.
Поставь скобки и заработает.
929298
#56 #929298
>>929297
Да, спасибо!
#57 #929788
>>929292
мне кажется, на этом яп хорошо под кислотой кодить
#58 #930605
>>928824
ООП везде реализовано через функции, довен. Если ссылка/указатель/whatever на об'ект передаётся в функцию неявно и ты её не видишь, то не значит, что её нет и что функция перестаёт быть функцией.

Так-то.
931427
#59 #930708
Haskell - когда документируешь исходный код пикшей.
#61 #931421
>>928400

>Вы прослушали мнение человека, не осилившего труды Карла Маркса в оригинале, но уверенно пиздещего при этом про Марксизм.

#62 #931422
>>928468

>Каждая лекция о хаскеле содержит детальное разъяснение


Может ты еще список всех лекций принесешь, чтобы мы проверили, действительно каждая содержит или не каждая?

>незнание точного порядка ленивой эвалюации произвольного выражения


Они всегда вычисляются в нормальном порядке, короче еще один фантазёр-неосилятор, дальше этот бред не читал.
932192
#63 #931423
>>928701
Это про какой-то вымышленный тобой язык, но точно не про Хаскель.
#64 #931424
>>928820

>Эта концепция легко ложится на наше человеческое понимание мира


Является ли прямоугольник наследником квадрата? Колесо - это свойство автомобиля или свойство дороги, на котором оно стоит?
946384946429
#65 #931426
>>928965

>Без реализации уровня Qt (или хотя бы дельфийского VCL)


Ебать ты говноед.
#66 #931427
>>930605
В ООП нет и не может быть функций, т.к. для функций нужно как минимум отсутсвие сайдэффектов.
946387
#67 #931664
Рагуль о языке погромирования ЭТА (haskell for JVM):
https://www.functionalgeekery.com/episode-83-rahul-muttineni/
931737
#68 #931737
>>931664
Зачем если уже есть Frege?
931766
#69 #931766
>>931737

>Frege


Это параша, а не язык.
Слишком много джавы.
А в ЭТЕ ты просто пышешь на цацкеле, а компилируется всё в байткод виртуальной машины джава.
931858
#70 #931858
>>931766
Во Frege то же самое, лол.
932035
123 Кб, 951x765
#71 #931874
Как там понятный и ненагруженный синтаксис?
932234
#72 #931922
>>928965

>что лучше ООП ничего для гуя не придумано


ООП гуй - говно и дрисня. С формочками в 90-х еще как-то справлялось (плохо), но для современных интерфейсов его надо нахуй выкидывать.
931924
#73 #931924
>>931922
Реактивное ФП, впрочем, тоже не очень для гуя подходит. Думаю, лучше подойдет что-то из синхронных языков вроде Lustre.
932073932234
#74 #932035
>>931858
FFE разный
#75 #932073
>>931924
Cрака тваей мамашки лутше, хех.
#76 #932192
>>931422
ВРЁТИ!
#77 #932234
>>928960

>ООП вообще никак не формализовано


Это не правда.

>>929055
Сделай свою, шо ты как не родной.

>>931874
Абсолютно согласен, только конченная мразь будет ставить пробел после слеша в лямбде.

>>931924

>тоже не очень для гуя подходит


Почему? Elaborate pls
932237932430
#78 #932237
>>932234

>Почему? Elaborate pls


Потому что там стейта нет, а стейт для гуя естественнен и интуитивен.
932263932270
#79 #932263
>>932237

> стейта нет


А свертка сигнала это разве не стейт?
#80 #932270
>>932237
Запили Elm-like компоненты с локальным состоянием и соедини их сигналами, хуле.
#81 #932286
Монада это, получается, типа галлюцинаций, но направленных из реального мира?
#82 #932430
>>932234

>Это не правда.


Тогда давай определение композиции в оопе.
933873
#85 #933873
>>932430
Я не он, но, кажется, композициия в ооп - это включение одного объекта в другой.
933998
#86 #933998
>>933873
Молодец. А теперь определение результата композиции двух объектов в ООП?

В ФП всё просто: (a ->b) . (b -> c) = (a -> c)
А в ООП? null
933999934004
#87 #933999
>>933998
Ты реально не понимаешь разницы между композицией функций и композицией как семантической связью между классами?
934003
#88 #934003
>>933999
Подробнее. Есть у меня class A, есть класс B.
Я создаю два объекта: a = new A, b = new B.
Какой результат a->setB(b)? Даже если бы был результат некий a', чем бы он отличался от а? Как мне произвести объектную декомпозицию? никак потому что в оопе объекты комбинируются процедурным быдлокодом, строгость которого где-то между юредическим соглашением и философским трактатом

>композицией как семантической связью между классами?


А какой с неё понт? Она не даёт никакой строгости, от того что в классе A есть метод setB(b: B), совершенно неизвестно что произойдёт после его вызова, что произойдёт с а, что произойдёт с b, понять это можно только посмотрев реализацию метода.
934008
#89 #934004
>>933998
(a содержит b) . (b содержит c) = (a содержит c)
%)
934009
#90 #934008
>>934003
Вернее, разумеется, с а или с b ничего "произойти" не должно, а должен быть некий результат или экшн.
Результата инжекшна a в b обычно нет, потому что setA - не функция, а процiдурка, экшн с сайд-эффектом в виде изменения стейта программы, экшн этот не имеет никакого типа (оопе же), никак не определён и не может быть изолирован и проверен.
#91 #934009
>>934004
не работает, инкапсуляция же
934022934073
#92 #934022
>>934009
И правда, не подумал)
#93 #934073
>>934009
Т.е. без инкапсуляции это бы работало, и композиция объектов была бы определена?
934407934424
#94 #934407
>>934073
Нет.
934411
#95 #934411
>>934407
Почему???
934430
#96 #934424
>>934073
Я как-то думал над этим. На определённом ограниченном варианте ООП, если бы a->setB(b) всегда возвращало некий с, можно было бы думать что этот с теперь имеет все публичные методы A, все публичные методы B, все их комбинации, то есть декартово произведенеие интерфейсов A x B, плюс все публичные поля (нахуй публичнве поля, геттеры/сеттеры же). Но по сути никакого декартового произведения не будет, так как методы имеют различные сигнатуры, различные типы, могут комбинироваться сайд-эффектным быдлокодом и вообще пиздец. С другой стороны можно рассматривать а как некий носитель стейта, а setB - типа сайд эффект, который его меняет. Но опять же в ООП сайд эффекты никак не типизированны и вообще как понять, чем теперь a отличается от a', если a->doShit() работало, будет ли правильно работать a'->doShit() ? Короче полная хуйня. Карделли конечно красиво стелит в своих пейперах, множества-хуёжества, но никакого толку нет, при первой же попытке применять какие-то формальные методы сразу всё летит под хуй. К тому же сама идея сказать что класс - это тип, уже хуёвая, помоему многие проблеммы именно из-за этого.
#97 #934430
>>934411
Да потому что в оопе нет никакого (.)
В твей формуле (.) это типа коньюнкция, а (=) импликация? Что-то вроде, если a имеет ссылку на b и b имеет ссылку на c, то а имеет ссылку на с? И что это даёт? Операция композиции где? Где результат? Где тип?
Если у тебя скажем а имеющая в своём стейте, кроме всего остального, ссылку на b, b имеющая ссылку на с, в резльтате инжекшна а в b у тебя будет null
что произойдёт, так это изменится стейт стейт, но как - хуй знает.
#98 #934433
Почему все так гонят на сайд-эффекты? Ведь это единственный способ взаимодействия программ с миром, и с пользователями в том числе. Мало кто топит за то, чтобы сайд-эффекты просто были максимально изолированы от остальной части системы, многие просто говорят, что сайд-эффекты - чистое зло.
#99 #934437
>>934433
Есть термин "побочные эффекты" же.
934447
#100 #934447
>>934437
Вот я про него и говорю. Не в отношении постов выше, а вообще.
#101 #934588
>>934433

>Почему все так гонят на сайд-эффекты?


Потому что в большинстве императивных языков они плохо изолированы и не контролируются.
934597
#102 #934597
>>934588
Можешь привести примеры таких языков?
А примеры языков, в которых они хорошо изолированы (кроме функциональных)?
934605
#103 #934605
>>934597

>А примеры языков, в которых они хорошо изолированы (кроме функциональных)?


https://en.wikipedia.org/wiki/Esterel
#104 #934609
>>934433

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


Не единственный. Можно брать весь мир на вход функции и возвращать модифицированным на выходе. Всё, функция чистая, у неё нет сайд-эффектов.
934610934612934614
#105 #934610
>>934609
Почти так и делается в языках с линейными/афинными типами, лол.
934612
#106 #934612
>>934609
>>934610
Что за пиздец? Вы серьезно?
934634
#107 #934614
>>934609
Почему так никто не делает?
934634
#108 #934634
>>934612
Абсолютно.
>>934614
IO-монада концептуально так и работает.
#109 #935024
>>934433

>Почему все так гонят на сайд-эффекты?


Только потому что трудно ими управлять, и они происходят не там, не тогда, или не в той последовательности что надо. Весь этот хайп вокруг ФП только из-за более лучшего разделения эффектов. И то, подход х-ля с монадочками уже далеко не единственный.
935049
#110 #935049
>>935024

> уже


Он и не был никогда единственным.
935072
#111 #935072
>>935049
Можно примеры?
935085935089
#112 #935085
>>935072
В треде уже упоминались линейные/афинные типы. Например в Clean они позволяют делать деструктивные апдейты по месту, но при этом без потери чистоты.
http://thedeemon.livejournal.com/37515.html

Ну или в Mercury уникальные типы юзаются для IO.
#113 #935089
>>935072
С линейными типрами есть, например

>F* is a verification-oriented dialect of ML.


Вроде в растике ещё где-то юзаются для мемори менеджмента.

Ещё были регионы в ML.
935123
#114 #935123
>>935089
Ну регионы - это не про сайд-эффекты все-таки, насколько я знаю.
#115 #935396
Народ, решил попробовать соснуть функционального хуйца. Стоит ли начинать с Хаскеля? Просто вариантов не так много. Скалу не хочу, я Джаву не знаю. F# бесполезен, erlang и elixir - возможно. Но я почему-то хочу Хаскель. Какие подводные камни?
935403935445
#116 #935403
>>935396
Будешь долго размышлять над монадами.
#117 #935445
>>935396

>Народ, решил попробовать соснуть функционального хуйца. Стоит ли начинать с Хаскеля?


Да. Других вариантов, в общем, нет.
#118 #935531
>>916056 (OP)
Как достигнуть функциональной нирваны и единиться с монадой?
935859935925
#119 #935859
>>935531

There is no royal road to Haskell. —Euclid
#120 #935923
Как выглядят монады в компьютере?
935927
#121 #935924
Можно ли представить разум, как программу на функциональном программировании, а рецепторы и действия тела как монады?
935926
#122 #935925
>>935531
1. Получить высшее в матеше на тему теории групп.
2. Освоить хаскель.
3. Проблеваться осознанием насколько убого программирование и сколько допущений и глупостей в той же хаскельной монаде.
4. Идти торговать на черкизон.
936671
#123 #935926
>>935924
Нет. Для этого есть машлёрнинг на пердоне/крестах/gpu.
#124 #935927
>>935923
Как набор разнородной хуеты с парой общих свойств.
2393 Кб, 632x3149
#125 #936540
#126 #936638
Под какой музон лучше всего закинуться маркой и постигать монады на Хаскеле?
https://www.youtube.com/watch?v=eHicZV2H__8
937201
#127 #936671
>>935925

>теории групп


Вот ты и слился, дебила кусок.
Каких групп, нахуй?
Там категории, ёпта!
936973937040
#128 #936973
>>936671
так котегории эта обобсчённая хуита кароч
ей можит быть и множество и группа и топалогия типа врубаешь?
ваще теория котегорий ничево нового не даёт а только систиматизирует уже отработанные области мотематики типа вот ета пиздюлька из топалогии и воон та хуёвина из теории множеств ета у нас такая то котегория, братан
#129 #937040
>>936671
Хули ты пиздишь, гнида?! Самый умный дохуя? Мне шарящие пацаны по-братски выдали сначала теорию групп заценить. Смотри мне тут, сука, пиздеть ещё будешь, ебало накрошу.
#130 #937201
>>936638
To build a full order on a set of complex numbers очевиден
937217
#131 #937217
>>937201

> psycho rock noise experimental breakcore


Какой-то набор малолетнего говноеда.
937841
#132 #937300
Сап приседальщики. Стек тут кто-нибудь юзает? Заебался я уже, весь день пытаюсь ублажать зависимости чтобы установить ебучий 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 мой сублайм нихуя не делает, кроме подсвечивания неиспользуемой хуиты и высирания всплывающих сообщений при ошибке компиляции.
ЕСТЬ ТУТ ПРАКТИКУЮЩИЕ КАЧКИ ИЛИ ВСЕ ТЕОРЕТИЗИРУЮТ?
937557937569
#133 #937557
>>937300
Поставь кабалом в песочницу и не еби анону моск, если не можешь разобраться со стеком.
127 Кб, 940x939
#135 #937827
Обоссы, но не бей Поясните в чем проблема
937830937843937861
sage #136 #937830
>>937827
хорошо что в моём ламповом пхп такой хуйни нет
#137 #937841
>>937217
Кто-то не может в иронию.
#138 #937843
>>937827
Неправильный тип.
#139 #937861
>>937827
-1.0 в скобки возми: (-1.0)
937907
#140 #937907
>>937861
Два мешка котегорий, теперь работает. Т.е. отрицательные числа всегда в скобки пихать?
Я до этого подумал что дело в минусе и пробовал вот так в скобки не додумался, лол:
acos $ clamp $ -1.0 theta 1.0, но тайпчекер не ублажился. В этом случае я так понимаю оно вернуло функцию -1, потом применило к theta и обосралось от того что в clamp пихают 2 аргумента, а не 3? Просто хочу понять как оно там у математиков работает, тайпчекер мне кучу хуеты выдал
#141 #937953
Нам препод по программированию сказал, что если нам нечем заняться, то стоит учить Гаскiль, лол
938002
#142 #938002
>>937953

> препод по программированию


>АВТОРИТЕТНОЕ МНЕНИЕ


Раздался голос со стороны преподавателя...
938030
#143 #938030
>>938002
прафесар жи
#144 #938031
неужели кто-то реально на этом кодит?
я просто поржать захожу
938050
#145 #938050
>>938031

>неужели кто-то реально на этом кодит?


А что не так?

>я просто поржать захожу


С чего?
938066938110
#146 #938066
>>938050

>С чего?


Со своего скудоумия
#147 #938110
>>938050
с хаскелистов
#148 #938173
Поясните как вкотиться в Хаскель.
938210
#149 #938210
>>938173
лёрн ю
потом риал ворлд
потом бигиннинг хаскел проджэкт бэйст эпроуч
потом книги диля
а затем уже вэб-фрэймворки учи, приложения в машин-лёрнинге, дата сцайенс, финансах и так далее
938220
#150 #938218
Блять, ну нахуй ваш качкель, опять дропаю на неопределенный срок ибо заебал люто. Хотел вкатиться в более серьезные вещи, а не вычислениыя метофакториалов и началось: cabal hell, ебучие несовместимости пакетов, которые решаются методом "угадай версию", куча language extensions даже на банальные вещи. Анальный тайпчекер: уже на простых вещах он выебывается со своими закидонами. Везде надо хуячить типы, которые как бы выводяться, а потом хуяк там-сям нельзя, надо врубить пару расширителей ануса языка. Какие-то блять кресты некст левел, по уровню неочевидных вещей и прострелов колен, особенно в правилах выведения и ублажения типов. Отдельная песня сообщения об ошибках, в 99% там будет что угодно, кроме хотя бы размытого намека на твою ошибку. Языку хуй знает сколько нет, но по сравнению даже с какой нибудь полуизотерикой нихуя нет. И это я еще как следует не сталкивался с проблемами ленивости и макаронного дебаггинга.

Еще не понравилось отсутствие перегрузки функций, это может вкусовщина и щас меня тут обоссут мамкиными борщами, но это тупо, когда тебе нужно либо выдумывать новое название функций, как в каком-нибудь си, либо инстанциировать, как правило левый класс, для своих обязанностей.

Что мне реально нравиться в хачкеле и МЛях это алгебраические типы данных, каррирование, все эти функции высших порядков типа фолдинга, фильтры-хуильтры, функторы и паттерн матчинг. Но это все есть во всех приличных языках. Остальное только постоянно ставит палки в колеса. Ну его нахуй.
инб4: ко-ко-ко неосилятор порвался, несите следующего
938224938772939095
#151 #938220
>>938210

> в машин-лёрнинге, дата сцайенс


Где там его используют, подкинешь ссылок?
#152 #938224
>>938218

>мне реально нравиться


Уроки иди сделай лучше. Или школьный курс повтори если великовозрастный.
938225
#153 #938225
>>938224
Конкретно с этим словом всегда проблемы, хуй знает зачем рептилоиды мне так внушили, но на автомате всегда пишу с ь, и тем не менее...
938226
#154 #938226
>>938225
Нравиться это инфинитив. Это что делать. Бегать, прыгать, летать, нравиться. Мне нравиться, мне казаться, мне улыбаться. Ты хочешь мне нравиться? Ты просто не представляешь как ты срёшь всем в голову своим "автоматом" на деле необразованностью.
938396
#155 #938396
>>938226
Лол, ты серьезно думал я не знаю как правильно и как проверять чувствительный ты наш?
#156 #938578
Поясните в двух словах, нахуя нужно изучать весь этот ваш Хаскель. Спасибо.
938639938663
#157 #938639
>>938578
1.Прост
2.По приколу
938743
#158 #938663
>>938578
Чтобы перестать быть долбоёбом и наконец стать программистом.
938743
#159 #938743
>>938663
>>938639
Как моя жизнь измениться после изучения Хаскеля? То есть вот есть ДО и ПОСЛЕ. В чем принципиальная разница? ИНБИФО: Раньше ты не знал Хаскеля, а теперь знаешь.
938748
#160 #938748
>>938743
А кто ты сейчас?
938755
#161 #938755
>>938748
Хикка сидящий у мамки на шее, но могущий в ЯП.
938770
#162 #938770
>>938755

>но могущий в ЯП.


>еще не знает хаскеля


Кому ты заливаешь? Иди проходи introduction to programming with python на курсере, а потом возвращайся.
938773
#163 #938772
>>938218
Все так, да. За перегрузку обоссал, да.
#164 #938773
>>938770

>introduction to programming with python


Но я всегда был за строгую типизацию и потому считаю питон говном.
938782938788
#165 #938782
>>938773
В питоне строгая типизация. Поэтому говно - это ты.
938784938792
#166 #938784
>>938782
Нет не строгая.
938796
#167 #938788
>>938773

>строгую типизацию


>в питоне строгая


Вангую что ты имел ввиду статическую.
Иди-ка реально programming for absolute begginers читани
938792
#168 #938792
>>938788
>>938782
Бля, вы правы. Не бейте, лучше обоссыте(((
#169 #938796
>>938784
Строгая статическая типизация, говно.
938797
#170 #938797
>>938796
динамическая
фикс
100 Кб, 590x600
#171 #938829

>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 не меняется, разве там не должна возникнуть бесконечная рекурсия? Извините за тупой вопрос.
938944938961
#172 #938944
>>938829
Где ты там бесконечную увидел? Это не рекурсия даже. Это n раз применить функцию "следующее число" к нулю чтобы получить собственно само n.
#173 #938961
>>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
938971
sage #174 #938971
>>938961
Так, я пиздец как обосрался. Надо спать.
Забудь последнюю строчку в том посте.
Но остальное прочти все равно, и вот это вот:
succ = λnfx.f(nfx)
succ 0 = (λnfx.f(nfx))0 = λfx.f(0fx) = λfx.f((λfx.x)fx) = λfx.f(x) = 1
Вообще любопытно где ты кодировку черча встретил. Не то чтобы особо малоизвестная или сложная тема, но хаскелисты с лямбдой даже до такой степени редко знакомятся.
938972939083939520
#175 #938972
>>938971

> редко знакомятся


Ой-йо.
#176 #939083
>>938971
Перед изучением хаскеля осиливал лямбда калькулус и теорию категорий

Мимо другой
#177 #939095
>>938218

>cabal hell


stack

>куча language extensions


Запиши их в cabal-файле проекта

>отсутствие перегрузки функций, это может вкусовщина


Так и есть
939319939323
#178 #939319
>>939095
Со стеком у меня было ебли даже больше чем с кабалом. Там тоже гадание на версии lts и конпелятора и в итоге нихуя не собралось.

>Запиши их в cabal-файле проекта


Ты даже не понял в чем проблема.
939323
#179 #939323
>>939319>>939095
А cabal sandbox не решает проблему? Я не особо в хаскеле шарю, но если я понял правильно то по крайней мере проблема с версиями библиотек должна отпасть полностью.
#180 #939402
Так как работают монады в случае нужды записать мне в файл?
939406
#181 #939406
>>939402
Записал тебе в файл, справил нужду тебе в файл.
#182 #939410
А можно в таких языках, как haskell обойтись без сборщика мусора?
939415
#183 #939415
>>939410
Конкретно в хаскеле - нет, он же ленивое хуйло. Чистота без гц возможна, луркай (внезапно) раст, клин, линейные типы, в меркюри вроде тоже такое было, регионы в мл... Короче, linear types memory management pdf и regions memoey ml pdf.
939427939555
#184 #939427
>>939415
В меркурии, несмотря на наличие регионов есть мусоросборщик, обычный boehm_gc. В млтоне отказались от регионов, например, как и в окамле. Вообще, разве основная проблема не из-за персистентных структур?
939450939555
#185 #939450
>>939427
Я точно помню, что читал пейпер про меркури без гц. Вроде диссер чей-то. Но это давно было, забыл, что там и как.

Основная проблема в структурал шаринге, из-за которого надо рефкаунт делать, если о датаструктурах говорить.
939466
#186 #939466
>>939450
Да был пейпер вот этот
http://dl.acm.org/citation.cfm?doid=1375634.1375644
Но я так понимаю, там говорится, что они только кое-какую часть перенесли на регионы, в последней версии рантайма там как был гц, так и остался.
939530939561
#187 #939520
>>938971
Спасибо, анон, теперь понятно.
#188 #939530
>>939466
Ну так это ж рисерч, его необязательно в мастер пихать.
#189 #939555
>>939427
>>939415
Mercury и constraint programming годнота? Стоит попробовать?
Прологом не владею
939562940215940248
#190 #939561
>>939466
Где можно спиратить книги с этого сайта. Заинтересовала A Framework for Scientific Discovery through Video Games
#191 #939562
>>939555
А хуй знает. Меня как-то не вставило, но я и не копался в нем особо.
#192 #940215
>>939555
Да стоит, там много крутых идей.

Но сама платформа сырая конечно же, ещё и релиз последний аж в 2014 был, хотя в мастер пушат регулярно, но там 1,5 рабочих силы на подхвате.
#193 #940240
https://github.com/dotnet/csharplang/issues/164
.Net-обезьянки опять пытаются натянуть гандон на глобус запилить тайпкласы
940248
#194 #940242
>>916195
Для всего вышеперечисленного, если охота сразу, но без хардкора. На то он и язык общего назначения.
#195 #940248
>>940240
Они хотя бы пытаются, это уже ставит их на одну ступень эволюции выше большинства мартышек.
>>939555
Лучше сразу курить theorem prover'ы, тот же Coq - там все эти алгоритмы вывода давно уже есть, если в доках покопаться.
#196 #940257
Блять, аноны, поясните.
Я вот пытался долбоебам на работе задвинуть про Coq, так они теперь меня доебываются, говорят среда Coq для языка программирования Petooh. Они не со зла, конечно, но почему вот люди такие тупые?
940532940639
#197 #940532
>>940257
Хех.
#198 #940639
>>940257
Это потому что ты теперь Petooh)).
940952
#199 #940759
На сколько я понял, в haskell весьма легко использовать функцию в префиксной записи для инфиксной и наоборот. А постфиксную нотацию можно?
940855
#200 #940855
>>940759
Не так и удобно, надо заключать в обратные кавычки типа getHui you inAnus можно записать как you `getHui` inAnus, нет бы сделали один символ.
Делать как в этих ваших фортах хаскель не умеет. Но есть расширение для ghc -XPostfixOperators
https://downloads.haskell.org/~ghc/6.6/docs/html/users_guide/syntax-extns.html
#201 #940952
>>940639
Вот и они тоже это говорят. И еще говорят, что это все для быдла и там quick sort написать нельзя. А сами юзают С++-парашу, лол, я ебу
941119941135
#202 #940953
Кто-нибудь может !доходчиво! объяснить ньюфагу про хаскельную модель вычислений? (Санки, спарки, WHNF... вот это вот всё) Как там гарантируется 'означивание по необходимости'. Зачем надо Spineless Tagless G-machine?
88 Кб, 930x849
#203 #941022
Вкатываюсь опять с нубовопросами:
1. Пикрил, хочу сделать слияние двух листов через определенную функцию, хуле оно выебывается?
2. Как можно красиво и практично извлечь сублист определенной длинны и с определенной позиции типа [1, 2, 3, 4, 5, 6, 7] subl (3, 3) = [5, 6, 7]?
941039941432942228
#204 #941039
>>941022
1. zipWith
2. subList (start, len) = take len . drop start
#205 #941119
>>940952
Да они охуели. На хаскелле квиксорт в три строчки пишется. Правда, работает небыстро.
#206 #941135
>>940952
Квиксорт в Хаскеле неправильный, он соснет хуйца, если массив отсортирован по убыванию или частично отсортирован по убыванию.
941212
#207 #941185
Опять начинаете блять? Ну давайте ещё скажите что квиксорт на хаскеле вырождается в три сорт или что-то в этом стиле.
941218941223
#208 #941212
>>941135
Но ведь с++ еще хуже. Только там у меня он долго сортировал, когда по возрастанию было отсортировано.
А еще можно еще просто случайно перемешивать элементы перед сортировкой, вроде.
#209 #941218
>>941185
Там вроде O(n*n) получается + создание списков, не намного медленнее квиксорта.
#210 #941223
>>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). Эта хуйня вырождается в сортировку вставками. Я как-то на Хаскелле делал нормальную быструю сортировку, так вот она выглядит не так, как в этом рекламном примере.
941228941232
#211 #941228
>>941223

>так вот она выглядит не так, как в этом рекламном примере.


А как?
#212 #941232
>>941223
Именно так она и выглядит. Здесь передана самая суть алгоритма, и без мутабельного говна, как в императивщине. Работать должно даже быстрее, чем в Си, но у меня в бенчмарках получалось где-то 10 секунд (в си одна десятая секунды, в джаве полторы). Но это плата за няшную иммутабельность и стройность алгоритма.
941233941564
#213 #941233
>>941232

> Работать должно даже быстрее, чем в Си


Смищно.
941237
#214 #941237
>>941233
Что тебе смищно? Сишник закукарекал? В Хаскелле иммутабельность и ленивость, а это по определению лучше мутабельности ибо большой простор для оптимизаций, так что может работать быстрее.
941238941240941245
#215 #941238
>>941237

>ибо большой простор для оптимизаций


И, как следствие, большая сложность компилятора.
#216 #941240
>>941237

>ВРЕТИ РРРЯЯЯЯЯ!!1


Понятно.
Ну напиши мне квиксорт на хасцелле быстрее си. Пока что это все позорище и бредни маркетолухов.
мимосишник
#217 #941245
>>941237
Смищно2
Иммутабельность и ленивость нужны для выразительности языка. Бесконечные списки и всё такое.

Достигается выразительность ценой низкой производительности. Но там, где производительность не нужна, хаскель рулит.
941261941499
#218 #941261
>>941245

>haskell


>выразительности языка


Смищно3
Хаскелл - это не для быдла язык, там даже для простых вещей нужно мозг использовать, чтобы было интересно, нужна тебе тупая понятность для даунов, бери питон или еще какую ссанину для быдла.
941263
#219 #941263
>>941261
Вы только посмотрите на это небыдло. Хаскель не сложен, а просто немного непривычен.
941354
17 Кб, 469x480
#220 #941279
Посоны, проясните мне ещё раз за преимущества хаскеля. Я даже пару программ на нём написал, монады.. ну понял что такое монады в хаскеле, но теоркатный прообраз совсем не асилил. Ну ленивость, ну чистота, всё это здорово, но мне как-то опытные люди сказали что хаскел это клёво для каких-нибудь чистых вычислений, но плохо для stateful программ, всяких движков графики/физики и всего такого. Что конкретно вас заставляет учить хаскел, а не какой-нибудь раст к примеру или эрланг/окамл? Всерьёз считаете что поумнеете? Тяга к прекрасному? Или какие-то практические прикидки?
941283941302941357
#221 #941283
>>941279

>stateful программ


Что это за бредни? Сам придумал?
Главное преимущество функционального программирования - выразительность и стройность / строгость кодирования алгоритмов. Главный недостаток - непредсказуемо низкая производительность / эффективность программ, имплементированных на тьюринг-машинах. Если тебя это устраивает - бери ФП, нет - иди мимо.
#222 #941302
>>941279
Короче слушай сюда. Если ты считаешь себя разумным человеком ты должен выбирать хаскелль. Потому что все программы на нем получаются простыми и доступными как если бы их писали гении, но только если ты тоже не тупой убогий императивщик отсиживающий свою жопу. Это им важна производительность, а умные программисты таким голову не забивают, им важно, чтобы их код был непонятен говну, которое лезет изо всех щелей как тараканы в айти. Тебе еще будут втирать тут всякие быдлокодеры на языке "си-хуй соси" про работку что-то, но ты как разумный человек должен выбирать с заделом на будующее, когда все они будут насасывать хуи и их пидоров будут ебать в сочную сраку функциональщики огромным бесконечным списком с вот такой головой. А ты откроешь свой емакс под линуксом, который тоже к тому времени победит, и будешь писать код на хаскелле с искусственным интеллектом, и смотреть с недосягаемой высоты на этих гондонов, и лузгать семечки и бросать шелуху сверху, и это все потому что ты выбрал в свое время хаскелль.
941311
#223 #941311
>>941302
Вот и жир потёк >изо всех щелей.
Канай отсюда, дофига-работничек. Тебе здесь не рады.
941316
#224 #941316
>>941311
А вот и императившик подтянулся. Что, готов уже, что мы тебе на ебало будем шелуху от семечек сбрасывать, пока длиннющий бесконечный список елозиет в твоем анусе, дружок?
941324
#225 #941324
>>941316
Жирный, хорошь - под дурака работать.
941326
#226 #941326
>>941324
Я не под тебя работаю, я вообще для всех пишу. Чего сразу если функциональщик, то жырный. Мы элита программирования, между прочим. Ты на себя вон посмотри, да на ебало свое, семками обсыпанное. Дибил императивный.
#227 #941352
Ребят, что читнуть, если я знаю общие понятия и принципы хаскелля. Т.е. мне не нужно объяснять, как создавать свои типы данных, что делают функции foldl1', <$>(fmap). Знаю про функтор и моноид, совсем базовое знание монад. Никогда не писал ничего больше 40 строк(лол). Другими словами, нужна книга intermediate уровня.
941359
#228 #941354
>>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ми и т.д.
941407
#229 #941357
>>941279

>Что конкретно вас заставляет учить хаскел, а не какой-нибудь раст к примеру или эрланг/окамл?


>раст - чек


>эрланг - чек


>окамл - чек


Осталось только хачкелем себя пощекотать
#230 #941359
>>941352
Beginning Haskell: A Project-Based Approach
Real World Haskell
Parallel and Concurrent Programming in Haskell

Первая хоть и называется бегининг, но там поясняют за все real world вещи, в принципе во многом повторяет real world haskell, но во многих местах испанец гораздо лучше излагает.
Третью еще не читал, чисто по совету анонов из треда, но судя по содержанию - годнота.
#231 #941407
>>941354

>однобуквенным переменным ... не бро


Неосилятором за версту несёт. Да как вы умудряетесь не понять главного?
Тут же как в алгебре, это один из важнейших способов достичь абстрактности той самой, ради которой ФП.
#232 #941431
ЫыыЪъъ, где есть внятное объяснение монад?
942622
sage #233 #941432
>>941022

> длинны

#234 #941440
Что с производительностью в функциональных языках?
941501
#235 #941499
>>941245

>Но там, где производительность не нужна, хаскель рулит.


> нужно мозг использоват


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


>Неосилятором за версту несёт


>Пук


Аргументы уровня: чтобы жрать говно - нужно быть гением, если тебе не нравится говно ты просто тупой
#236 #941501
>>941440
Нормально всё. Проблемы у всяких хачкелей из-за ленивости и чистоты ануса и эрлангов из-за того, что это динимическая интерпритируемая залупа.
#237 #941564
>>941232
Тебе уже сказали, что на определенных данных (список отсортирован в обратном направлении) эта реализация будет давать N^2. Оригинальная квик сорт тоже будет О(N^2), но там при правильной реализации вероятность этого будет очень маленькой, тогда как в этой рекламной реализации на Хаскелле ты всегда будешь получать квадратичное время на хуевых данных.

>Здесь передана самая суть алгоритма


Нихуя тут суть не передана, quicksort - это randomized algorithm. Суть алгоритма в том, чтобы pivot выбирался случайным образом, тут ничего такого нет.
941665941813
#238 #941665
>>941564

> Суть алгоритма в том, чтобы pivot выбирался случайным образом


Уоу-уоу-уоу, иди-ка Кормена наверни.
941741
#239 #941741
>>941665
Что не так?
942109
#240 #941813
>>941564
Quicksort сортирует in-place, а здесь еще гора аллокаций, которые тоже, мягко говоря, небесплатны. Отсюда и тормоза в несколько порядков.
Ты, я смотрю, типичный функтодурачок: над тобой поржать хотели, слона не приметив - а ты вообще не понял, о чем речь, лол. Не удивлюсь, что ты всерьез думаешь, что ту ссанину может компилятор оптимизировать, лол.
941862942533
#241 #941858
>>916281
Почти всегда это не всегда как бы, как это не то же самое?
#242 #941862
>>941813

>еще гора аллокаций, которые тоже, мягко говоря, небесплатны


O(NlogN) == O(c*NlogN), так что ни о каких отличиях на порядки тут речи не идет, иди что-нибудь по теории алгоритмов почитай, ебанашка.
Аллокации у него, блять. Может, пруфанешь дизассемблером этох хуйни?
По мне, так там должна быть оптимизация - список-то один и тот же петушится.
941911
#243 #941911
>>941862

>O(NlogN) == O(c*NlogN)


Чтоб тебе в очереди к терапевту с такими константами стоять, функтоблядок хуев.

>пруфанешь дизассемблером


Ну пруфани дизассемблером. Хули ты от меня-то ждешь, я не буду возиться с этой поебенью. Тем более, что цифры в сети есть, лично мне этого достаточно.

>список-то один и тот же петушится


Да петушишься здесь только ты, хуесос.
941942941947
#244 #941942
>>941911

>Хули ты от меня-то ждешь, я не буду возиться с этой поебенью.


Забавно, но именно ты высираешься ИТТ про оптимизации и аллокации.
941962
#245 #941947
>>941911

>Тем более, что цифры в сети есть, лично мне этого достаточно.


Какие цифры? Цифры от чего или для чего? Цифры количества хуев, побывавших в пизде твоей мамаши?
941962
#246 #941962
>>941942
Нет, ты. Ты тут доказываешь, что "ВРЕТИ ХАСКИЛЬ НИТАРМАЗИТ!!1! АРРРЯЯЯ!!!!1!". Хотя квиксорт (и еще хэш-таблицы) - это классический предмет троллинга функтопидоров. Этим занимаются все, кому не лень - от мимокроков из соседних тредов до вполне серьезных исследователей, пишущих научные работы про эти косяки.
>>941947

>ХУИ В ТВОЁЙ МАМКИ АБЫРВАЛГ УДУШУ РАСТОПЧУ


Какой же ты жалкий, тупорылый долбоеб.
941970941972
#247 #941970
>>941962

>Нет, ты. Ты тут доказываешь, что "ВРЕТИ ХАСКИЛЬ НИТАРМАЗИТ!!1! АРРРЯЯЯ!!!!1!".


Ты попутал, пиздец. Я просто указал, что вот эта вот реализация квик сорт, которая есть в любом учебнике по любому функциональному языку, неправильная.
941981
#248 #941972
>>941962
Плюс я сделал предположение, что даже в этом случае Хаскель не должен создавать 100500 списков, ведь это можно оптимизировать. Так ли это на самом деле, я не проверял. Ты же начал визжать про какие-то "отличия на порядки", хотя это вообще к теме не относилось.

>классический предмет троллинга функтопидоров


Мимо. Я вообще из жаба-треда мимокрокодил.
942002
#249 #941981
>>941970
Как ты можешь рассуждать о каких-либо абстракциях, если не смог додуматься, что, с моей точки зрения, это применимо попросту к большинству вещей у функтоблядков?
Да и о чем с тобой разговарить, если ты не знаешь, что 1000N и N отличаются именно что на порядки, и это и есть тот слон, которого от тебя демонстративно прятали за спичечными коробками.
941991
#250 #941991
>>941981

>Да и о чем с тобой разговарить, если ты не знаешь, что 1000N и N отличаются именно что на порядки


Ебать ты деревянный. При чем тут порядки, когда O(NlogN) и O(N^2) - это совсем разные алгоритмы? Ты же утверждаешь, что квиксорт на Хаскелле - это 1000 * квиксорт на С. То, что в качестве рекламки пишут на Хаскелле - это не квиксорт.
942049
#251 #941998
>>931420
И что там? Какие-то проектики типа LABA1 без ридми и описания. Нахуй так жить?
#252 #942002
>>941972
Ну точняк еба нах. Он императивщик. Ебало подставил быстра свое. Мне шелуху от семак нада сбрасывать. Лашок ебаный.
942029
#253 #942029
>>942002

>императивщик


>у функтоблядков


Да на тебя не угодишь. Ты сам-то кто по масти?
942035942036942043
#254 #942035
>>942029
Конкатенативщик c амбициями в чистую declarativness, инфа сотка, мне только что лично Хаскель Карри нашептал
942043942099942211
#255 #942036
>>942029
Раби-петух или 1с-ник какой-нибудь, скорее всего.
942043
#256 #942043
>>942029
Ты че базаришь так нахуй? Ты че меня запомоил ебанат ахуел? Ты кому предьявляешь нахуй? Чушел блять. Иди нахуй атсуда дурак ебаный.
>>942035
>>942036
Кароче бля пояснил нахуй этим по хаскелю хуем в их сладкие жопы сигу потушил об очко. Под шконарь загнали абассали ептать смотрите не запомойтесь ребзя.
5 Кб, 192x262
#257 #942046
ХАСКЕЛЛ УМИРАЕТ ГОЛАНГ ОЖИВАЕТ
942047
#258 #942047
>>942046
Зачем нужен голанг если есть божественные beam languages?
#259 #942049
>>941991
Ну ты же не можешь в математику. Ты не понимаешь, что 1000n^2 хуже n^2, а оно хуже nlogn, грубо говоря. А в сишке константа и близко не эта условная тысяча.
942051942065
#260 #942051
>>942049
Ну нихуя математик великий. Еще раз, специально для тебя в 10-й раз: рекламная реализация квик сорт на Хаскелле при сортировке списка, который уже отсортирован в обратном порядке, будет гарантированно O(N^2). Тогда как правильная рандомизированная реализация на С, Джаве, Сишарп и т.д. асимптотически также будет O(N^2), но в общем случае будет O(NlogN). Что тебе не понятно?
942063
#261 #942063
>>942051
А где кстати прочитать про O(N^2) и вообще про то что этот квиксорт на самом деле не квиксорт?
С пруфами естественно, в более-менее математическом смысле.
Я чет не нагуглил даже сходу.
#262 #942065
>>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, там никакого рандома нет (как и в классическом квиксорте с первым/средним опорным элементом). А то, что обычный квиксорт имеет квадратичную сложность в худшем случае - так это в любом языке так, не только в тормозном хаскелле. И хаскелльный сорт тормозит в десять раз не поэтому. А теперь скажи дяде "спасибо" и иди уроки учить, дурень.
942067942468
#263 #942067
>>942065
Ты не смотри, что там "android" написано, в доках Оракла прямым текстом указано, что у них тот же самый алгоритм.
#264 #942099
>>942035

>Хаскель Карри


Шёнфинкель, ты хотел сказать?
#265 #942109
>>941741
Суть не в этом, очевидно.
#266 #942211
>>942035
Чем плохи конкатенативные языки? Тем более, есть с реализациями теории типов. А уж для калькуляторов и микроволновок ничего лучше оных нет.
942221
#267 #942221
>>942211
Ничем, все то вам на двачах кажется что в каждом посте пытаются опустить.
#268 #942227
Какая самая годная иде для качков? Кроме емакса и вим которые не иде.
Я уже заебался с сублаймом, этот пидор не работает так как мне нужно, вечно проебывается с синтаксисом, хуячит отступы табами, да и вообще хуево сделали. Попробовал три плагина на IDEA, но че-то ну ее нахуй, глючная неудобная хуета, ее только для явы применять + косячные плагины.
Посоны с редита пишут про охуенную поддержку атома и сейчас его качаю, но помнится раньше это был убогий лагающий высер и чуичка подсказывает что за эти пару лет ничего не изменилось.
В чем кодишь анон?
942232942330942350
#269 #942228
>>941022
1. У тебя после применения map на список получается список каррированных функций, так что да, zipWith
#270 #942231
Посоны, пара вопросов.

1. Накатывал ли кто Nix / NixOS? Какие преимущества, недостатки? Зависимость есть?

2. Объясните мне, почему я до сих пор не накатил XMonad?
942331
#271 #942232
>>942227
Как-то ты хуево настроил саблайм, если у тебя такой пиздец.
Табы пробелами настраиваются в правом нижнем углу, выбери просто "Indent using spaces" и выбери нужную длину.
Дальше накати SublimeHaskell и SublimeREPL и живи счастливо.

Можно ещё заморочиться и hlint, и автодополнение добавить, но дальше это уже свистоперделки лично мне и без них норм
942267
117 Кб, 1086x901
118 Кб, 1287x975
#272 #942267
>>942232
Хз хз, мне нравится сублайм, но для хаскеля он какой-то хуевый. Все это я накатывал, однако работает через жопу. Ладно еще отступы, их можно и конвертнуть в три клика. Но эти плагины конкретно хаскель поддерживают криво. У меня постоянные проблемы с синтаксисом let и where. Если переносить их на следующую строку, то подсветка всего что ниже идет по пизде. Потом ебанутые всплывающие описания ошибок распидорашивающие строки. Так и не нашел как их отключить, без отключения всего остального. Hsdevs вообще унавоживает почти весь экран разными огромными иконками рефакторинга, неиспользуемых функций и т.д. Ну его нахуй.
Сейчас попробовал хипстерский атом, вроде годно сделали, работает быстро(ставил до этого полтора-два года назад и он тормозил сильнее идеи, обвешаной макакоплагинами на гигабайт), радует глаз. Все плагины завелись без ебли в гамаке ну не совсем без ебли, некоторые пути все же надо было прописать в настройках, но это мелочи

Посмотрю как дальше пойдет, но пока - заебись
#273 #942330
>>942227
Имакс не иде? Ты с какого района вообще? Не читал но не иде?
942338
#274 #942331
>>942231
1. Ненужно.
2. Ненужно.
942337
#275 #942337
>>942331
Аргументация для пидоров?
#276 #942338
>>942330
3. Ненужно
Я не вхож в круг любителей вырвиглаза и бесконечных конфигурирований-переконфигурирований в консольке.
942341
#277 #942341
>>942338
Зато я вхож в твою мамашу. Похуй мне, куда ты входишь, я просто пиздаболов не люблю. Ты имакс в глаза не видел и утверждаешь, что он не иде, а он иде. Ирл я бы тебе уже зубы выбил, гнида.
942347
#278 #942347
>>942341

>Ирл я бы тебе уже зубы выбил, гнида.


А по айпи ты меня еще не вычислил, школоборец?

>я просто пиздаболов не люблю


>Ты имакс в глаза не видел, я так скозал


Ультралол, самоистязания там не устраиваешь?
942352
#279 #942350
>>942227
Ничего лучше жидеи нет всё равно.
942369
#280 #942352
>>942347
Ну то есть по сути ты со мной согласен, раз по существу ничего не возразил, ок.
942369
#281 #942366
Ну, елки-палки. Где найти внятное объяснением монадам типа "вот так оно в математике, так в haskell, так в си, так в ассемблере, а так с помощью красивого психоделичного мультика" ?
#282 #942369
>>942352
Что мне тебе возражать? Емакс продвинутый блокнот, можно изнасиловать себя и превратить его в иде, но это для отдельных любителей капчевать из консоли и собирать все вручную. Для обычных, нормальных людей, которые не пердолились емаксом с времен рождения иссуса хуево называть это иде.

>>942350

> Для явы ничего лучше жидеи нет всё равно.


Поправил тебя
инбф: ко-ко нетбеансб эклипс
942372
#283 #942372
>>942369

> Емакс продвинутый блокнот


Еще раз: ты либо дебил, либо не видел толком имакса, либо и то, и другое. Не пизди о том, в чем не разбираешься, гнида.
942378
#284 #942378
>>942372
Ой акстись ты нахуй со своим емаксом, ставил и пользовался не один раз. Иди нажми C-x C-c и съеби из треда, сектант.
942381
#285 #942381
>>942378
Пидораха, я тебе указываю на фактическую ошибку, которую ты допустил, а ты из этого делаешь предположение, что я сектант\пользуюсь имаксом. И со знаниями проблемы, и с логикой не лады, и имакс не осилил. Типичная гнида.
942421
#286 #942400
А давайте соберем статистику длины хуйцов функциональных программистов в этом треде. Постим фото, измеренную длину, измеренную ширину, сколько лет, рост, вес.

А потом скинем это все в джаватред, пускай эти карланы императивщики ебаные поплачут над своими короткостволами. Заодно узнают, чем их и ихних мамок ебать будут когда мы к власти придем.
#287 #942401
>>942400
Так ведь уже пришли.
942415
#288 #942415
>>942401
Да. Тогда тем более надо сделать, веселей!
72 Кб, 1344x651
18 Кб, 813x172
#289 #942421
>>942381
Что за унылая зелень пошла, НА ФАКТИЧЕСКУЮ ОШИБКУ он мне указывает, иди уроки доделай, мамкин демагог.
942651
#290 #942427
>>942400

> пускай эти карланы императивщики ебаные поплачут над своими короткостволами


12/12 см/cм, 189/73 см/кг, 26 лвл, Mlton, SML NJ, F#, haskell.
Чет так себе у тебя план
942621
#291 #942433
>>942400
14 лет.
178 см роста и 63 кг.
12 см.
Scheme/Haskell/Prolog/Clean/Factor.
942621
#292 #942447
>>942400
19 lvl
17 sm
185+- sm
73 kg

ocaml, scala, erlang
942621
#293 #942468
>>942065
Смотри-ка, а в Принстоне считают, что и в такой реализации рандом есть. Наверное, они долбоебы, да?
http://algs4.cs.princeton.edu/23quicksort/QuickDualPivot.java.html

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


Да, но если список отсортирован (или частично отсортирован) в обратном направлении, то рандомизированные быстрые сортировки с большой степенью вероятности будут давать линеарифмическое время, а та хуйня на Хаскелле будет гарантированно квадратичной в таких случаях.
Скажи, что ты траллируешь, плес? Я тебе одно и то же 100 раз повторил, ну не бывает же таких долбоебов как ты.
942479942844
sage #294 #942479
>>942468

> имеет квадратичную сложность в худшем случае


Как раз чтобы избежать этот худший случай и делается shuffle. В принципе можно без него.
#295 #942533
>>941813

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


>маня думает что хаскель не может в реюз read-only памяти и на каждый map будет создавать новую коллекцию


>2017



хотя по

>Что за три сорт?


можно было и не читать эту говноцепочку

олсо,

>это инплейс


с какого это хуя? потому что в деструктивной сипараше делают инплейс всего что только можно? но вообще-то одним из преимуществ квиксорта является естественное распараллеливание, что в случае с инплейсом не очень сочетается
#296 #942621
>>942427
>>942433
>>942447
совсем охуели? фотки где?
у меня самого 10 см, но зато вешу 115 кг.
#297 #942622
>>941431
В Маклейне
#298 #942625
>>942400
dlina ~17.5 sm
rost 170
ves 55
#299 #942651
>>942421
Ты даже текст шрифтом помельче не додумался прочитать - я уж не говорю о мануале, дебил.
942670942687
#300 #942670
>>942651
Ты какой-то тупенький, реально как-будто школьник

Мимо 18 см
942674
#301 #942674
>>942670
Семен семеныч, ну зойчем ви так.
942687942689
#302 #942687
>>942651
>>942674
Что еще спизданешь, малыш?
942689942690
#303 #942689
>>942687
>>942674
Аноны, хватит сраться и сливать тред в сраное говно, давайте лучше поговорим о сабже.

Вот даже вопрос на засыпку. Слышал, что линзы и призмы не вносят ВООБЩЕ никакого оверхеда в код. Как так выходит? Юзаются специальные расширения языка, или что?
942690943518
#304 #942690
>>942687
Иди мануал читай, гнида.

>>942689
Да ладно, тред же бампать надо. Про линзы - ну, ты про их реализацию читал вообще, не? У омича вроде были про это статьи.
942692943516
#305 #942692
>>942690
Омич? Кто это?
Я только LYAHFGG читал, цикл статей про монады (тот, что с картинками), ну и десяток-другой статей на пиндосском, остальное - курс в универе и практика.
942693942698
#306 #942693
>>942692
okmij
Алсо, есть же functional programming with bananas, lenses and envelopes
942694
#307 #942694
>>942693
Круто, люблю, когда харкач полезен.
Спасибо тебе, анон, буду изучать!
#308 #942698
>>942692

>курс в универе


Whut? Это где так хачкелем балуют?
942703942769944179
#309 #942703
>>942698
ИТМО
942769
147 Кб, 970x982
#310 #942709
Вкатываюсь с очередными выебонами тайпчекера.
Есть класс Vector и тип Vec3 являющийся экземпляром первого.
В коде перемножение матриц, для чего берется строка и столбец матриц, преобразуются в вектора и вычисляется скалярное произведение(dot).
Можно ли ублажить академиков без включения очередного анального расширителя(FlexibleContexts)?
942770943522
#311 #942769
>>942698
>>942703
У меня в Харькове (Украина) есть кружок functional programming для первокурсников. Думал туда закатиться, но чёт совсем слабенькая программа у императивных петухов
942770942880944160
#312 #942770
>>942709
>>942769

> для первокурсников


Имею ввиду на базе ВУЗа для определённых студентов определённой специальности
942831942863
#313 #942831
>>942770
Да хуета обычно эти кружки/курсы( за ИТМО у анона не скажу) в 99% случаев будут задвигать элементарные вещи типа что функция может принимать и возвращать другие функции, что есть map, filter, reduce(про которые сейчас даже явамакаки знают), каррирование, расскажут как жи жить без присваивания и как делать циклы рекурсией + про хвостовую оптимизацию, научат сопостовлять паттерны и в лучшем случае еще объяснят за адт. А, ну и ленивость еще.

Всю эту хуйню можно за часов пять с нуля самому освоить в любых книгах про хаскель. А продвинутых вещей и нахуя вообще оно все нужно там нихуя не рассказывают ограничиваясь мантрами вроде "ну епть, имутабельность, паралеливать легко, функционально же, пацаны зауважают".

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

Минск, Карла Маркса 38
942880
#314 #942844
>>942468
Мальчик, знаешь, что с тобой не так? Ты привык жить в своих субъективных маняфантазиях.
Ты не понимаешь, в чем суть промышленного программирования: так же, как в юриспруденции судят не по "справедливости", а по закону, так же и тут у нас руководствуются не интуитивными манявыводами (которые дауны вроде тебя называют "здравым смыслом", "логикой", и т.п. - ибо им кажется, что они мыслят единственно верно), а отраслевыми документами. Весь цимес троллинга именно в этой твоей ошибке, но ты, тупорылый школьник, никак не хочешь ее осознать.
Оракл, Гугл, Эппл и прочие используют вариации квиксорта, в которых никакой рандомизации нет - а это значит, что ты не прав (т.е. обосрался). Дело не в оптимальности или неоптимальности такого решения, а в том, что оно именно таково по факту.
943002
#315 #942863
>>942770
У нас ФП читают на 4 курсе, довольно продвинуто. В конце семестра нужно было написать свой ЯП, желательно с реплом.

Итмо-кун
942951
#316 #942880
>>942831

>Да хуета


> 99% случаев будут задвигать элементарные вещи >>942769


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

#317 #942940
Где почитать за все эти монады, дабы понять, что они представляют с себя при их составлении и на низком уровне?
#318 #942951
>>942863
Мне прямо даже интересно, где это может пригодиться в Реальной Жизнитм. Так же, как и с олимпиадами - в один прекрасный день гугл заявит, что олимпиадники-задроты пишут хуевый код, транспонирующий коней в вакууме на скорость, и нахуй не сдались?
943366
#319 #943002
>>942844
Я уверен, что тебя бы выебли в очко, если бы ты использовал ту реализацию на Хаскелле в одной из упомянутых тобой контор (Оракл, Гугл, Эппл).
Тебя бы ебали, а ты визжал про

>суть промышленного программирования



>в которых никакой рандомизации нет


Там более навороченные оптимизации. Открой хотя бы исходники класса Arrays в Джаве.
943012943805
#320 #943012
>>943002
Опять этот хуесос захрюкал, найс.

>я того мама рот ибаль


Вот только пока что хаскелисты визжат на хую гугла, независимо от того, что пишут. прям как мамка твоя

>Там более навороченные оптимизации


Выходит, рандомизация не признак настоящего квиксорта по твоей же логике, и тебя бы за нее выебали в жопу. Пиздец ты тупой, ты думаешь, что мне что-то докажешь, а на деле получаешь все больше хуев на свой ротан. Ну как так можно, тебе что, нравится?
#321 #943366
>>942951
Ну если конкретно об языке, то на хаскеле пиздато парсеры писать. Взял megaparsec/attoparsec - и в путь. Либо код с высокой степенью надежности.

Но его основная ценность не в этом, а в прочищении сознания, возможности взглянуть на языки программирования и с другой стороны. Если умело комбинировать ООП и ФП, то можно получать красивый, эффективный и легкий в сопровождении код. По-моему, оно того стоит.
#322 #943516
>>942690
lens over tea загугли еще
#323 #943518
ебать я снайпер
>>942689
lens over tea загугли еще
943527
#324 #943522
>>942709
ты похоже нихуя не понимаешь как работает $
пользуйся скобками:
let combine row col = dot (fromTuple row) (fromTuple col)
newElem rowIndex colIndex = combine (getRow rowIndex mrx1) (getCol colIndex mtx2)
944141
#325 #943527
>>943518
И тебе спасибо
34 Кб, 500x333
#326 #943805
>>943002

> тебя бы


> если бы


> тебя бы

#327 #943888
>>916056 (OP)

>старин


Кто такой старин?
945102
87 Кб, 816x603
#328 #944141
Хаскелач, почему мой пайп оператор не работает как надо? Пикрил две последние строчки, закоментированный код не эквивалентен нижележащему.

>>943522

>ты похоже нихуя не понимаешь как работает $


Апликация функци c пониженным приоритетом, не? В том коде сначала было как ты написал, это потом я уже знаков там вместо скобок нахуячил. Но ошибки выдает одинаковые, а вопрос решился уточнением типа после вызова: (fromTuple row :: Vec3). Что-то мне казалось так уточнение типа не будет работать, а оно работает. Вот и сейчас я чет туплю на этом пайпе ибо заебалось по евгейски писать, справо на лево. Но нихуя не работает, хотя на простых примерах скользило как по вазелину.
944231944882
#329 #944160
>>942769
хардкора захотел, сынок?
закатывайся в эту субботу, че то придумаем
мимо ассистент ВМБ
#330 #944179
>>942698
У меня в универе есть обязательный курс, посвященный парадигмам программирования. Функциональное программирование на Haskell — одна из тем. Кроме того, рассказывается много чего про нетипизированное и просто типизированное лямбда-исчисление, про выведение типов, доказательсво корректонсти системы типов, про let-полиморфизм. В общем, теоретическая основа того, с чем работает Haskell.
#331 #944231
>>944141
infixl 0 |>
#332 #944689
Почему Неш на ОП-пике?
944707
#333 #944707
>>944689
Они и программируют так же.
#336 #945039
>>928965

>Без реализации уровня Qt


React+Redux это не Qt, но вполне себе мейнстрим и вполне себе стрелки вместо объектов.
#337 #945102
>>943888
Бамп вопросу.
945343
#338 #945195
Я таки не понял как выглядят монады потом, после компиляции.
945528
#339 #945343
>>945102
Старина.
945492945585
#340 #945492
>>945343
Поначитаются своих хаскелей и потом ябуть друг друга забывают русский
#341 #945528
>>945195
GHC он как Путин.
Он сахар превращает в машинный код.
#342 #945585
>>945343
А может старик?
#343 #946374
>>942400
Двачую этого. 13 лет. 160 рост. вес не знаю. писюлёк 7 см. занимаюсь в кружке.
#344 #946381
Покидайте рус учебников для ньюфагоф начинающих в общем
946383946439
#345 #946383
>>946381
Yoba haskell third edition.pdf
#346 #946384
>>931424
Нет, прямоугольник и квадрат - инстансы разных классов (но могут наследоваться от единого класса polygon)

Колесо, ясен хуй, свойство автомобиля. Но ничего не запрещает определить интерфейс для взаимодействия с дорогой.
946436946707
#347 #946387
>>931427
Если я пну твою пеку, когда она будет чистую функцию выполнять, значит ли это, что она будет с сайдэффектами?
#348 #946429
>>931424
Это суть функтопетухов-неосиляторов. Устраивать бессмысленные выяснения, что было раньше - курица или яйцо.
Так вот, есть у нас одна элементарнейшая вещь, недоступная вашим убогим пост-процедурным мозгам. Слушай внимательно, недоумок.

Все зависит от того, под каким углом ты рассматриваешь систему. Если ты анализируешь какие-нибудь транспортные потоки, например, то выделять у автомобилей колеса вообще может быть бессмысленно. Дело в удобстве - если тебе удобно решать поставленные задачи, сделав колесо свойством машины - ок, делай так. Если свойством дороги, или еще кааким-нибудь внезапным способом - тоже найс. А вся шизофреническая хуета на тему "истинного устройства мира" идет сразу нахуй, у нас тут индустрия, блять, а не кружок по философии.
175 Кб, 1280x930
#349 #946436
>>946384

>Нет, прямоугольник и квадрат - инстансы разных классов (но могут наследоваться от единого класса polygon)


Когда-то на RSDN была эпическая тема насчёт того, что это и есть класс Polygon, а у него два метода, догадайся кокие.
946444
#350 #946439
>>946381
Можешь просто почитать заголовки разделов статьи вот этой статьи.
https://habrahabr.ru/post/303984/

Особенно интересно выглядит пятый пункт в свете предыдущих четырех. Еще одно напоминание, что ФП с серьезной наукой, вообще-то, имеет гораздо меньше общего, чем втирает нам функтобыдлота.
#351 #946444
>>946436
Кстати, этот вариант тоже вполне соответствует концепции ООП.
И весьма даже удобен, если, например, полигон часто меняет форму по задаче (в редакторе диаграмм, например).
А еще в игрострое есть архитектура ECS (Entity-Component-System), которая тоже является ОО.
#352 #946707
>>946384
Прямоугольник, если разделить его на два - будет два квадрата. Если же квадрат разделить на два - будет два прямоугольника.
946771
#353 #946771
>>946707
Ну, доказывай давай, геометр.
#354 #946791
Можно ли нормально хаскелить под виндой?
946846
#355 #946846
>>946791
Конечно. Устанавливаешь ghci platform и готово.
946978
#356 #946978
>>946846
Было бы готово - не спрашивал бы. Выдаёт не гуглящуюся ошибку.
#357 #947006
Поясните за ->. Я правильно понял, что это по сути type constructor, как, например, Bool, только с двумя параметрами, и этот конструктор создает type values не знаю, как правильно назвать, и они в свою очередь являются функциями. Получается, функции - это значения типа ->?
#358 #947010
>>947006
Нет.
947014947015
#359 #947014
>>947010
Почему нет? Есть же инстансы Category (->) и прочей хуйни, прямо как для других типов.
#360 #947015
>>947010
И kind подходящий ( -> -> *)
947018
0 Кб, 86x20
#361 #947018
#362 #947144
Тут есть вообще такие, кто Хаскель профессионально использует? Или одни диванные?
947155
#363 #947155
>>947144
Пишущий в основном на Хаскеле на работе вкатился.
Спрашивайте свои ответики.
947178947198948453
#364 #947178
>>947155
Че пишешь? Как начал? Приседаешь?
947328
#365 #947198
#366 #947328
>>947178
В смысле приседаешь?

Отвечу вам на вопросы завтра вечером. Сейчас нет времени, да и спать пора.
947503
#367 #947503
>>947328

>В смысле приседаешь?


Шуточка про хаскель и приседание со штангой, врпочем забей.
Раз такое дело ты там поподробнее простынку то накатай. Как попал\начал писать инб4: берешь и без задней мысли пишешь, что пишешь, плюсы-минусы со стороны практикующих язык не на метавычислениях факториалов.
948766948836
#368 #948453
>>947155
Я б спросил ответик, да у тебя за щекой после хаскиля места не осталось.
948766
#369 #948766
>>947503
>>948453
Здесь вообще одни тролли сидят?
То за щеку дают, то какие-то шуточки про бутылку.
Зачем я буду вам рассказывать истории, если вы только ржать можете?
948782948839
#370 #948782
>>948766
Жирным ебанатам ты отвечаешь, а мой вопрос по теме треда >>947006 почему-то игноришь. Опять все скатилось в говнище.
948855
#371 #948801
>>947006
Нет
#372 #948809
>>947006
Нет.
#373 #948836
>>947503

>приседание со штангой


deadliftы лучше
от становой тяги хуй лучше стоит
#374 #948839
>>948766
Ну катись к хуям. Лол, зашел на двач и строит из себя целку. Бутыки, хуи ему мерещаться, нет чтобы взять и написать будет хуйней страдать. Аттеншн вхоры на другой доске, занятой.
948855
#375 #948852
>>947006
Нет.
#376 #948855
>>948782
Ну вот раз говнище, так и будешь сидеть, в блокноте программировать.
А этот хер ушел свою ламповую работку работать.
А ты хуи сосешь. А ты сосешь хуи. Хуи ты остался сосать, понял?
>>948839
Что за бутыки еще? Да аттеншн вхора тут только ты, блять, додик.
948860
#377 #948860
>>948855

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

948872
#378 #948872
>>948860
Пишущий в основном на Хаскеле в блокноте вкатился.
Спрашивайте свои ответики.
948874
#379 #948874
>>948872
В смысле жирный ебанат?

Отвечу вам на вопросы в следующем. Сейчас нет времени, да и ссать хочу.
948881
#380 #948881
>>948874
Держи нас в курсе
948910
#381 #948910
>>948881
Да иди соси уже хуй, долбоеб.
949175
#382 #949175
>>948910

>А ты хуи сосешь.


>А ты сосешь хуи


>Хуи ты остался сосать, понял?


>Да иди соси уже хуй


Эко тебя на хуях повернуло, не беснуйся так ,латентный, найдешь себе крепкого хуйца.
949209949215
#383 #949209
>>949175
Да иди уже хуй соси, долбоеб. Уличил он меня, сука.
949261
#384 #949215
>>949175
Программирующая в основном на Хаскеле тян вкатилась.
Спрашивайте свои ответики.
949273949721
#385 #949261
>>949209
Зарепортил хуесоса
949269949443
#386 #949269
>>949261
Себя, что ли?
sage #387 #949273
>>949215
Пошла нахуй, шлюха.
949306
#388 #949306
>>949273
В смысле шлюха?

Отвечу вам на вопросы на следующей неделе. Сейчас нет времени, да и к плите пора.

>>947006
Нет.
949346
#389 #949346
>>949306
Пишущий в основном на хаскеле на работе вкатился.
Задавайте свои ответики

Мимо создатель хаскеля
949355
#390 #949353
Пишущий в основном на тёмной материи на работе вкатился.
Задавайте свои ответики.

Мимо создатель вселенной.
#391 #949355
>>949346
В смысле создатель хаскеля?
949367949384
#392 #949367
>>949355
В том же что твой папка. Всмысле вставлял свой капиллярный спрут в математиков и стрелял.
949371949388
#393 #949371
>>949367
Ты бы и в собаку стрельнул.
#394 #949384
>>949355
Отвечу на твой вопрос вследующем релизе. Сейчас нет времени, да и сорцы чет не собрались.

>>947006
Нет.
#395 #949388
>>949367
Русский рэп?
949406949835
#396 #949406
>>949388
Раунд!!
#397 #949443
>>949261
Блять, я аж от страха наделал тебе в ротешник
#398 #949535
>>947006

>и этот конструктор создает type values не знаю, как правильно назвать


просто types. type constructor создает типы.

> Получается, функции - это значения типа ->


нет типа (->), это конструктор типов с двумя параметрами. применишь его к двум типам (например Foo и Bar) - вот тогда получишь какой-то тип (Foo -> Bar) и значениями этого типа будут функции
949662
#399 #949540
Как сделать логи в хаскелле? Это уже побочный эффект?
949552
#400 #949552
>>949540
Монады же. Передаем функции на вход весь мир, возвращаем измененный
#401 #949662
>>949535
Спасибо, теперь понятно.

Возник еще вопрос, поясни, если знаешь: у меня есть одна небольшая задачка по парсингу определенных спецификаций на естественном языке, там есть иерархическая система вида раздел, подраздел, глава, пункт и т.д. Там должна быть возможность построения что-то типа AST, а также возможность определения ошибок, например, после главы 1 идет глава 3. Текст на естественном языке, но дохуя формальный и имеет достаточно четкую структуру, соответственно, можно слабать какую-никакую грамматику. Подойдет ли для этого parsec, или я совсем ебанутый и там что-то другое нужно использовать?
949668949680950027
#402 #949668
>>949662
яву бери
949669
#403 #949669
>>949668
В смысле яву? На регэкспах парсить?
949672
#404 #949672
>>949669
Ну да, как диды, хуле тебе от хаскеля надо?
949675
#405 #949675
>>949672
Да выебнуться хотелось, parser combinators, вот это вот все. Хотя и в джаве есть что-то подобное, типа jparsec.
949692
#406 #949680
>>949662
Нет.
72 Кб, 700x531
#407 #949692
>>949675
Ты там учебник по природоведению собрался, что ли, парсить, слышишь, долбоеб?
Выпендриться хаскелем он собрался, задрот хуев.
949696
#408 #949696
>>949692

>Выпендриться хаскелем он собрался


Как что-то плохое...
949738
#409 #949721
>>949215
Почему при построении котегории, где объекты – типы данных, а морфизмы – функции, из варианта типизированного лямбда-исчисления на комбинаторах получается замкнутая симитричная моноидальная катигория (подобно Hilb, где объекты – канечномерные гильбертовы пространства с обычным тензорным произведением, а морфизмы – линейные операторы), но не декартова, каковой является Set?
950275
32 Кб, 493x604
#410 #949738
>>949696
Вырастешь, поймешь...
949946950277
#411 #949835
>>949388
Дада, это из раунда бабки.
#412 #949946
>>949738
Вырос и ссу за шиворот всем прогматикам 9999 уровня и пишу на том, на чем интереснее
950128
#413 #950027
>>949662
да подойдет
есть еще megaparsec он по новее
#414 #950128
>>949946
Двачую. А работка не нужна, нам и у мамки хорошо.
#415 #950275
>>949721
мб потому что
x::Int
x=undefined
не?
#416 #950277
>>949738
Етат спидараший езык - как хачу так и мелю, хех.
950300
#417 #950300
>>950277
Чувак а зачем ты с ним разговариваешь? Он же тролль простой. Необразованный. Давай лучше за хаскель поговорим. Ты давно программируешь на хаскиле?
#418 #950311
А напомните-ка, чем энтон ваш хачкель лучше православного дидовского лиспа?
Я вот щас свой лисп пишу, со статической типизацией.
950349950404950419
#419 #950349
>>950311
Ч И С Т О Т А
И
С
Т
О
Т
А
950509
#420 #950399
Так как я явамакак то обмазываюсь кложуром.
Этот ваш лисп пока не очень понятно где применять.
Напишите чтоли пару саксес стори внедрения функциональной парадигмы в энторпрайз или хотя бы в вебе.
Сразу оговорюсь. Интересуют только чисто функциональные языки. Диалекты лиспа, хачкель. Всякая хуйня С поддержкой функциональной парадигмы типа скалы не интересны. Асинхронные неблокирующие сокеты я и на яве сделаю.
Интересно именно внедрение в бизнеслогику
950510950512950645
#421 #950404
>>950311
Кроме чистоты функций можно вспомнить еще частичное применение функции, композицию функции, неизменяемость данных, монады-монадочки и ленивые вычисления. Еще можешь посмотреть на комбинаторное программирование, стэковые языки.

Хотя, надыбал еще такой красочный pdf с мемасиками на 83 страницы почему Хаскель хороший: http://camlunity.ru/swap/haskell/whyhaskell.pdf
950509
#422 #950419
>>950311

Сводяшего с ума синтаксиса уже достаточно, чтобы не пользоваться лиспом.
950509
#423 #950507
Напомните-ка, как в хачелях изящно делается валидация?
Дано: кортеж вида (Just "YOBA", Nothing, Just ""). Валидность третьего поля может зависеть от содержимого второго.
Ожидаемый результат:
— Для невалидного значения: ["2 is Nothing", "3 is an empty string"];
— Для валидного значения: { one: "YOBA", two: "second value", three: "third value" }.

Спецификация неполная, но суть должна быть ясна. Как сделать это кривым и многословным образом очевидно. Как сделать это с помощью красивых зигохистопрепроморфных аппликативных пандорических функторов я не понимаю.
#424 #950509
>>950349
Но я и на лиспе могу писать в чистом стиле, если не буду применять переменные.
И на хаскеле - в грязном с монадой IO.

>>950404

>частичное применение функции


>композицию функции


>неизменяемость данных


>ленивые вычисления


Но это все есть в Лиспе.

>>950419
По крайней мере по лисповскому коду логика понятна. А по хаскалевскому - нет, даже перл и тот читабельнее.
950519950632
#425 #950510
>>950399
Ну мы в конторе заменили весь старый JS стек на ClojureScript + Reagent + Garden, полёт нормальный. Был адовый ебаторий со стандартным реакт стеком, теперь ебаторий значительно меньше. Такая вот стори. Хотя можно было бы заменить на Elm, но у нас все идейные динамикопетушки, так что вот так.
950654
#426 #950512
>>950399
ERLANG же
950654
#427 #950519
>>950509

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


Это ты просто еще не разобрался и не привык. В хаскеле гораздо читабельнее код и как правило короче. Даже те мозговыносящие вначале конструкции это дело привычки и показывают что ты пока плохо усвоил хачкель. В лиспе все эти бесконечные вложения, вложений вложений уж точно менее читабельны.
950520
#428 #950520
>>950519
Очень много сокращений, поэтому ничего не понятно. Приходится в голове код достраивать.
#429 #950578
Реально ли написать браузер (включая компоненты типа интерпретатора джаваскрипта) на haskell? Какая структура такого кода бы была? И видимо, надо много использовать монад или нет? Думаю поглядывать в код presto.
950586950591
#430 #950586
>>950578
Было бы интересно посмотреть.
Браузер - одно из самых сложных десктопных приложений, заебешься писать, чтобы он полностью понимал все стандарты и при этом еще не тормозил.
Может, борщехлебы продемонстрируют на таком примере преимущество уличной магии функционального кода? Будет намного убедительнее сотен паст.
#431 #950591
>>950578
Оказалось, зачатки уже есть! https://hsbrowser.wordpress.com/3s-functional-web-browser/
#432 #950632
>>950509
Где можно посмотреть твой проект?
#433 #950645
>>950399
Спецэффекты для Властелина колец рисовали в пакете для работы с трехмерной графикой, написанном на лиспе - Izware Mirai: http://franz.com/success/customer_apps/animation_graphics/izware.lhtml
950646
#434 #950646
>>950645
Есть опенсорсный клон одной из программ в этом пакете, написанный на эрланге: http://www.wings3d.com/
#435 #950654
>>950512
Что эрланг?
Кроме создания конечных автоматов и работы с соединениями на что он годен еше?
Работа со строками как листами через паттернматчинг и фолды хуелды?
По мне так не серьезно.
Кроме как коннекшен пул использовать эрланг я придумать задач не могу.

>>950510
Сорян но это спорное решение. Могли зоть на рельсы с джангой перевести. Причем тут функциональная парадигма?

Я именно о использовании парадигмы спрашиваю а не языков. Просто на той же явке я могу любую задачу решить с помощью ооп и вообще без Функциональщины.

Мне бы пример уровня.
Вот мы на бекенде парсили джейсоны потоковыми парсерами, а теперь на лиспе парсим в 20 раз быстрее и код проще
950688950691950788
#436 #950688
>>950654

> создания конечных автоматов


Что ж ты делаешь!

> и работы с соединениями


Ахахахахаха...

> на рельсы с джангой


> клиентсайд


...прекрати!

> Причем тут функциональная парадигма


> реакт


ЧТО Ж ТЫ ДЕЛАЕШЬ АХАХА ПРЕКРАТИ Причем хочу заметить, что "при чем" пишется через пробел.
950702950705
#437 #950691
>>950654

>Что эрланг?


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


А других и нет, кроме Эрланга и Скалы.
950702
#438 #950702
>>950688
Не понимаю что ты порвался на пустом месте, но туши пукан истеричка.

>>950691
Скала не чистый функциональный язык. Я о ней сразу сказал. Эрланг нишевый и особо задач кроме тех что я описал выше у него нет.

Я все еще жду примера. Как например лисп используют на бэкенде для парсинга, семантического анализа, ии или нейросеточек.
950707951317
#439 #950705
>>950688
Двачую адеквата, "причем" нужно было через пробел
#440 #950707
>>950702
А что используют для ии, нейросеточек и семантического анализа? inb4: petuxon
950727
125 Кб, 1464x1068
#441 #950727
>>950707
До Питона когда-то использовали Common Lisp.
950728950738
#442 #950728
>>950727
Пичалька, что питон сейчас.
950738
#443 #950738
>>950728
>>950727
В чем пичалька? Я не ратую за питухон, но поясните что было такого особенного в лиспе, что нужно было искуственному интеллекту?
Единственный мнимое преимущество это гомоиконность, если ты хотел своего киборга на ГЕНЕТИЧЕСКИХ АЛГОРИТМАХ. Но в 2017 генетическими баттплагами только самые отбитые пользуются.

Нейронки, классификаторы, кластеризаторы и прочие распознаватели паттернов т.е. 99% современного мля нихуя от лиспа не получили бы. Кроме гемора с привинчиванием сбоку к анусу 9000 библиотек, написанных не на лиспе.
950743
#444 #950743
>>950738

>Единственный мнимое преимущество это гомоиконность, если ты хотел своего киборга на ГЕНЕТИЧЕСКИХ АЛГОРИТМАХ


Дело не в них. В 60-е считалось, что интеллект это такой символьный процессор. Отсюда и гомоиконный лисп.

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


На самом деле учитывая что современные либы для нейронок это специализированные CAS, получили бы. Просто люди выбрали "более сложно устроенная библиотека, зато более простой вызывающий код", а не наоборот.
#445 #950788
>>950654

>Могли зоть на рельсы с джангой перевести.


Хм, я думал что из контекста тебе будет понятно, что речь шла про веб-фронтенд, какие рельсы с джангами, о чём ты.
Ну так я ответить тебе не могу, так как не понимаю о чём ты толком спрашиваешь. Какие теоретически приимущества даёт ФП? На эту тему в сети материала навалом. Какие приимущества оно даёт в конкретной области, например, в веб-фронтенде? На эту тему тоже много статей, тот же Tonsky из русскоязычных нормально пишет конкретно по веб-фронтенду. Какие конкретные вещи были заменены на другие и дали за счёт этого лучший результат? Ну тут, на мой взгляд, вопрос вкорне неправильный, и сразу детектит неправильный ход мысли у спрашивающего, от чего отвечать ещё больше не хочется. Решение конкретной задачи из области прикладного программирования (типа выгрузить вооон тот отчёт, или распарсить вооон ту хуйю) выполняется 10 разными языками с 10 приблзиительно одинаковыми результатами, разницы нет. То что тебе на языкнейм удалось решить прикладную задачу так, что она стала выполнятся в 20 раз быстрее, чем на языкнейм2, значит только, что решение её на языкнейм2 было выполнено из рук вон плохо. Железо работает одинаково, под капотом выполняется обычный низкоуровневый код, рост увровня абстракции может только замедлять и усложнять выполнение программ, а не наоборот. Приимущества выбора какой либо принципиальной модели, в частности ФП, в прикладном программировании определяются исходя из куда более сложных и одновременно при этом довольно банальных факторов, чем решение сцаной конкретной задачи как в олипиадке, параметры решения которой можно было бы мерять такими показателями как скорость выполнения кода, кол-во строк и прочая хуйня. Так что мой ответ будет такой: мы используем реакт через реагент и кложу для устраниния проблем, которые постоянно возникают при разработке веб-приложений с использованием стандартных подходов базирующихся на чистом реакт стеке или на упаси боже джава-лайк ангуляре.
#446 #951317
>>950702

> обоссали, высмеяли


> "туши пукан!!"

951321
#447 #951321
>>951317
Эти маняпроекции.
У тебя шизофрения развилась от изучения хаскеля или ты стал изучать хаскель из-за своей шизофрении?
951558
#448 #951558
>>951321

> маняпроекции


Какой рекурсивный у тебя пост, умничка.
#449 #953806
Почему Num не наследуется от Ord?
953844
#450 #953844
>>953806
А какой там порядок у комплексных чисел?
953855953886
#451 #953855
>>953844
Ты прав. А что по поводу Eq?
953871
#452 #953871
>>953855
А что с ним?
953887
#453 #953886
>>953844
Кстати математики там ничего не пытались придумывать чтобы ввести ординалы в комплексные числа?
953889
#454 #953887
>>953871
Почему Num не наследуется от Eq?
953888
#456 #953889
>>953886

>ординалы


Значение знаешь?
953947
#457 #953947
>>953889
Ну значит не знаю, хуй с ним, упорядочить комплексные числа пробовали?
954000
#458 #953952
>>953888

>Mathematical side note: the Num class generally models algebraic structures called rings.



Тогда я не понимаю смысл названия Num. Почему они не назвали его Ring?
954000954013
#459 #954000
>>953947
Любое множество можно вполне упорядочить.
>>953952
Э, ле. В хаскеле, как любом другом промышленном языке, много легаси. Короче, так исторически сложилось.
#460 #954013
>>953952
Ты бы еще спросил почему монады не являются аппликативными функторами.
954789
#461 #954020
>>927601

>И да, всё тобой перечисленное глотает пыль на обочине


Только вот у хаскелля ебаный толстый рантайм, хуевая производительность и таки непонятный синтаксис, причем он непонятен не потому что там много каких-то ебо-символов, а именно потому что Хаскелль вводит кучу всякой хуйни, которая даже не существует в реальном мире.
Т.е. нет сомнений, что на нем можно как-то реализовать почти любую задачу, вопрос будет только в оптимальности конечного результата, в затраченном времени и возможности все это поддерживать.
954093954270
#462 #954024
Господа, что скажете по поводу OCaml? Несколько другая парадигма, но, как я смотрю по вакансиям, более популярная.
954284954587954595
#463 #954093
>>954020

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


Но ведь монады существуют в астрале, про них еще Джордано Бруно писал.
#464 #954270
>>954020

>которая даже не существует в реальном мире.


Соси хуй, быдло.
#465 #954284
>>954024

>OCaml, Haskell


>вакансии


лол
954587
#466 #954587
>>954024
Потому что окемл мультипарадигменный. Хоть в указатели сри почти как в сишечке, потому ирл если и выбирается ФЯ то это либо окамл, либо скала (та же опера).

>>954284
Ты конечно удивишься, но такие ирл существуют. Если сравнивать с галерами, где текучка 50макак/неделя — то про кол-во вакансий конечно говорить не приходится, но от того они в этой реальности не исчезают.
954626
#467 #954595
>>954024

>Господа, что скажете по поводу OCaml?


Тредов тонет.
954602
#468 #954602
>>954595
Так создай, если шаришь.
954616954643
#469 #954616
>>954602
Ради 2,5 анона вместе со мной? Он же ктонет.
954643
#470 #954626
>>954587

>Ты конечно удивишься, но такие ирл существуют. Если сравнивать с галерами, где текучка 50макак/неделя — то про кол-во вакансий конечно говорить не приходится, но от того они в этой реальности не исчезают.


Сколько вакансий этих и сколько поехавших придурков, задрачивающих хацкиль? Думаю, первых раз в 999 меньше, чем вторых.
954636954661
#471 #954636
>>954626

>сколько поехавших придурков, задрачивающих хацкиль


99% из них дальше написания факториала не продвинулись.
954639
#472 #954639
>>954636
Продвинулся тебе за щеку. Проверяй.
954651954674
#473 #954643
>>954602
>>954616
Я про ОС-, а не 2ch-треды.
#474 #954651
>>954639
Проверил у твоей мамки за щекой @ обнаружил там свой хуй.
#475 #954658
Тут был анон, который использует Хаскель на работе. Можешь рассказать, что за проект, какие задачи решаешь, хотя бы примерно. Пишешь только на Хаскеле или еще какие-то языки используешь?
#476 #954661
>>954626
Я хоть слово написал про хачкель? Он даже в мире ФЯ нужен только для факториалов с красивой чистотой.
954675
#477 #954674
>>954639
доверяй но проверяй
#478 #954675
>>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.

954712
#479 #954712
>>954675

>>We have around 2.5 million lines of bullshit


Ок, один хипстернутый банк - это доказательство, ты победил.

Почему-то мне такой же хуй на жуйке полгода назад тыкал этим же банком, видимо, это совпадение, ведь с тех пор миллионы компаний и молодых стартапов внедрили у себя хаскелл, а не какой-нибудь там б-гомерзкий Go или другую парашу.
954718954723
#480 #954718
>>954712
Хуки ты раскукарекался?

Ты написал:

>Он даже в мире ФЯ нужен только для факториалов с красивой чистотой.



Я это опроверг. Хули бесишься?
954726
#481 #954723
>>954712
https://www.janestreet.com - Вот еще конторка, тоже используют Хаскель. Еще я находил сайт Хаскель-консультантов, сейчас лень искать. Спрос есть, хоть и очень небольшой.
954726954858955488
#482 #954726
>>954718
Это не я написал, но твое "опровежрение" - хуйня из-под коня.

>>954723
Охуеть. А я находил сайт чисто по haskell jobs.
Спрос небольшой потому что хуита.
#483 #954789
>>954013
почти год как являются
#484 #954858
>>954723
Ты чо-то попутал, питушок.
#485 #955196
Кто-то готов делать ИИ на хаскелле выслушивая разных шизиков вроде меня?
#486 #955261
Пиздец, башка от хачкиля пухнет, сейчас тупил над Y-комбинатором.
955262955272
#487 #955262
>>955261

>Занимался бесполезной дрочкой


орм провел время?
#488 #955272
>>955261
Та, это всё херня. Вот я тупил над ним в рамках чистой комбинаторной логики по учебнику Вольфенгагена, вот это да.
955280
#489 #955280
>>955272

>в рамках чистой комбинаторной логики


Как по-твоему, стоит комбинаторную логику задрочить? Прибавляется ли понимание каких-то вещей?
955289
#490 #955289
>>955280
Чистую кобмнаторную логику - нет.
А вот книгу "Комбинаторная логика в программировании" В.Э.Вольфенгагена - это может быть интересно, там типизированная комбинаторная логика погружённая в теорию категорий же. Но от неё тоже пользы особо не много, просто интересно, там самые основы про категориальную абстрактную машину и такую вот хуйню всякую.
955296
#491 #955296
>>955289
А в целом, по теме какую литературу можешь посоветовать? В данный момент читаю Allen, Moronuki - Haskell Programming, конца и края ей не видно, бoлее 1000 страниц, лол.
#492 #955488
>>954723
Ты просто тупорылый петушок, вот я тебе что скажу. Не понимаешь одной очевидной вещи, которая прямо-таки очевидна, да.
955937
#493 #955937
>>955488
Нахуй пошел, скот. Настоебал уже своими нравоучениями.
956005
#494 #956005
>>955937
Ты ноешь про нравоучения потому, что воспринимаешь меня, как батю.
Сыч, пошел бы ты, что ли, в футбик погонял, или на макбук заработал, а то так и останешься со своим хуяскилем кукарекать под прыщиксом.
956039
#495 #956039
>>956005
Ебать, что ты несешь. Тебя в детстве родители не били?
Я вообще-то из центральной Европки вещаю, где уже много лет работаю погромистом. А Хаскель учу по фану. Так что ты по всем статьям обосрался.
956061
#496 #956061
>>956039
В какой стране работаешь?
На чем пишешь?

другой анон
956073956076956119
#497 #956073
>>956061
Исландия. Пишу на Коболе.
956076956084
#498 #956076
>>956061
В Украине.
Пишу на ебаном.айти.
на 7 пыхе, если серьезно. это, между прочим, не смешно!
>>956073
Дизрегард, это самозванец.
116 Кб, 811x879
#499 #956084
>>956073
Обколюца своим хаскилем, и ябуть друх дружку в жопы в центральноевропейской исландии.
#500 #956119
>>956061
Deutschland
Java
956220
#501 #956220
>>956119
Анончик, расскажи, как там с арендой жилья.
Дорого ли, долго ли искать.
956336
#502 #956336
>>956220
Смотря где. В городах типа Мюнхена или Франкфурта снять проблематично, особенно если квартира хорошая и в хорошем районе. Понаеху как правило помогает фирма, в которой он работает. По ценам - зависит от потребностей, я плачу 900 за двушку. Если прибавить интернет и электричество, то как раз около штуки набегает.
#503 #957045
как избежать Warning:Tab character ?
957101
#504 #957101
>>957045
Не использовать табы, очевидно же.
#505 #963560
Ребята, есть какие задачки по хаскелю?
963766963792
#506 #963766
>>963560
в хаскеллбуке есть задачки http://haskellbook.com/
963985
#508 #963985
>>963766
>>963792
Благодарю
#509 #964760
>>916056 (OP)
Аноны, я начал разбираться с хачкелем.
До этого си ковырял.
Норм, очень даже норм.
#510 #964858
>>916056 (OP)
тред уплыл, создайте новый
#511 #965955
Аноны поделитесь пжл информацией по types & typeclases! А именно: я хочу перечисление всех тайпкласов и всех типов, которые в них входят. Идеально подошла бы таблица.
966079
#512 #966079
>>965955
Ебанутый? что значит "всех типов и тайпклассов"? Если тебе нужны вообще все - грепай хакадж или лучше гитхаб. Нет? тайпклассопедия.
966125966151
#513 #966125
>>966079
всмысле их дохуя??
#514 #966151
>>966079
может ты не так понял? я ищу что-то типа:
в тайпкласс Floating входят типы Floating и Double и так для остальных
966172966175
#515 #966172
>>966151
Первая картинка в гугле по запросу Haskell typeclass diagram.
#516 #966175
>>966151

>в тайпкласс Floating входят типы Floating и Double и так для остальных


ghci :i Floating
21 Кб, 1114x137
#517 #966473
Приучаю обезьян к монадам. Работает в половине случаев.
Это тайпскрипт если что.
#518 #966475
>>966473
getDef это fromMaybe офк
#519 #966619
>>966473
Где ты тут монады увидел?
968408
#520 #967732
>>966473
Сука, какое же вырвиглазное говно.
#521 #968408
>>966619
getSitemaps :: 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
#522 #968416
>>966473
А форматировать нормально код ты не приучаешь их?

Или это ты сам эту хуйню высрал? Ну тогда у меня для тебя плохие новости, макака - это ты.
#523 #968435
Поясните, во что разворачивается эта хуйня:
fibs = 1 : scanl (+) 1 fibs

Не сам результат, а как происходит вычисление. Я всю голову сломал. То есть, 1 :, потом идет scanl, но он вызывает fibs, где снова идет 1:. Как это работает?
#524 #980004
>>916056 (OP)
Суперговно, язык для поехавших. Пишу и плююсь, блядь. (-1), охуеть, блядь, /= пиздец, блядь.
Тред утонул или удален.
Это копия, сохраненная 23 мая 2017 года.

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

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