Это копия, сохраненная 23 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Литература:
learn haskell for a great good
документация.
я учил его хуйню на теории игр, ехал головой и понимал это дерьмо
а теперь я жалкая веб-макака, мне очень стыдно
кто-нибудь, утешьте меня
Хули такая скудная шапка, а, ПИДР?
Вот нормальный список литературы:
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
Ждал тебя золотце потому что.
Для всякой паралельной еботы и веба есть эрланги с элексирами.
Для всякой требовательной к перформансу (не хард риалтайм конешно) еботы есть окамл (для некрофилов есть всякие диалекты sml-а, причем даже без сборщиков).
Для совсем низкоуровенного говнища с байтами и кишками есть руст.
Для всевозможной ебли с пруфами, завтипами и прочей ебатой про корректность есть идрис, агда, коки и др.
А в чем я не прав-то? Язык про то, как бы безопасно юзать ссылочки ублажая компилятор. Все страдания и болевые порывы там только от его цели.
>ленивость вычислений дает порой дикий прирост к производительности по сравнению с тем же си и даже асмом - реально что-либо вычисляется только в случае необходимосте.
Интересный байтойоб. Что чаще происходит обратное при простейших аллокациях, или эти деревья в 2-1 строчки будут в десяток раз медленнее его варианта даже не задумался. хотя судя по тому что "он с васма" это очередной пейсатель троянов и кряков, чему удивлятся. Еще кстати порадовало "все функции принимают только один аргумент".
У него там еще запезь шикарная:
Почти всегда разговор с девушкой - это трёп, лишенный всяческого смысла. Вчера, нопример, спорел с одной из представительнец противоположного пола. Получилось чото типа:
Я: - блаблабла почти всегда блаблабла
Она: - ПОЧТИ!!!11одинодин А значит не всегда.
Вот тут и происходет наёб, "почти всегда" превращается в "не всегда". Вроде и мелочь, но если прикинуть, то серъезная подмена понятий. "почти всегда" - это "почти в 100% случаев", то есть в 100%-Х% случаев, где Х<<50%. А вот "не всегда" может быть сказано и при 1% и при 0,000001%, вобщем если есть хотя бы один прецендент.
Ну и железное возражение девушке:
Я: - "почти всегда" - далеко не то же самое, что "не всегда"
Она: - думай как хочешь.
Наконец-то единственный годный тред в этом разделе.
>все функции принимают только один аргумент
Не понял. Разве нет? a -> a -> a это не a -> (a -> a)?
HaskellWiki: "In Haskell, all functions are considered curried: That is, all functions in Haskell take just one argument"
Так что пройди нахуй.
блин, как же хочется изучить хаскель. Слыхал, это делается всего за месяц, можно сделать одно маленькое приложение на хаскелле и всякие гуглы-яндексы тебя с руками оторвут.
Для описания сколь-нибудь сложных предметных областей. Также склоняюсь к тому что скала нужна для этого же (особенно если есть зависимость на jvm). То есть для 90% проектов использование этих языков несет только лишние риски, как кстати и использование эрланга, смлей и раста, хотя и для них есть определенные области применимости.
мимоскалаёб
>как кстати и использование эрланга, смлей и раста, хотя и для них есть определенные области применимости.
У них-то они есть, а вот у хачкеля — нет. Вот вообще. Он прожорливее жавы (от гц до процессора, быстрый код кроме как хеками с ffi не пердолится), паралелится хуже эрланга (и хуяк хуяк для продукшина не сделоть), заметно медленнее того же окемла (например парсеры — посмотри сравнения любого menhir/camlp4 с каким нибудь атоопарсеком — там отсос в десятки раз везде). Да блять, в и из окамла хоть можно туда сюда экстракить всякие коки и получать верифицированный кодес, а тут...
Avoid Success at All Costs as it is.
Ты просто не осилил.
Все таки у хачкеля нашлось одно применение: быть моделью для более современных языков.
Пюрэ и эльм по-своему взяли из него все самое лучшее, давая возможность вебмакакам писать супернадежный фронт(а пюрэшку я сейчас и для бэка начинаю использовать).
Хаскель нужен только для того, чтобы программировать на нормальном языке.
И да, всё тобой перечисленное глотает пыль на обочине, кроме пруфассистантов. Но Хаскель как бы не пруфассистант и не конкурирует с ними.
Хаскель - это как марксизм-коммунизм, хорош на бумаге. Учебники почитать, пейперы, тайпклассопедию, на форумах попиздеть, на конференциях повыступать - лучшая область применения хаскеля. Предел его возможностей - библиотекописательство, причём либы должны быть максимально оторванны от конкретных задач, даже от областей - чем дальше тем лучше, чтоб мерзкий контрреволюционный realworld не засырал прекрасный алгебраичный и стройны гаскиль-код. Но на этом всё. Написание на нём конкретного кода конкретного приложения или фреймворка, и жизнь с этим добром в продакшене - это область где хаскель проигрывает почти всему мейстриму и даже не мейнстриму, и именно поэтому на хаскеле СОФТАТОНЕТ и НЕБУДЕТ. Щутка, это всё из-за заговора корпораций.
космос вне корабля, он:
1. Открывает люк, определим его как первый.
2. Переходит в шлюзовую комнату.
3. Закрывает первый люк.
4. Открывает люк выхода из космического корабля, можно определить как второй.
5. Выходит в открытый космос.
Впрочем, нашел и такое:
Поэтому необходима принципиально новая система шлюзования, исключающая неоправданно сложную систему замков шарниров и резиновых прокладок.
Новый шлюз должен состоять из трёх стенок расположенных друг к другу под углом 120о и закреплённые на одной подвижной оси.
Космонавт располагается между двух стенок и закрепляется фалом. После этого производится поворот системы на 180о и космонавт оказывается в открытом космическом пространстве. Затем он покидает шлюзовую камеру и по специальным трапам из скоб перемещается на внешний корпус корабля или станции, используя систему фалов, скоб и зеркальце.
Стенки шлюза должны быть прозрачными, что необходимо для правильного психологического настроя перед выходом.
Так же внутренние стенки шлюза должны быть покрыты специальной мягкой, не обязательно прочной, оболочкой.
Между оболочкой и внутренними стенками шлюза можно подавать воздух или какой-либо другой газ для комфортного выталкивания звездоплавателя в космос.
Данная схема обеспечит надёжное шлюзование космонавта, проста в эксплуатации и легко ремонтируема. Она устойчива к внешним и внутренним перепадам температур и давления, а так же не подвержена деформации.
Альнитак. Екатеринбург. 14.10.2009
Источник: http://volna56.narod.ru/shluz2/shluz4.htm
Зачем я это написал?
космос вне корабля, он:
1. Открывает люк, определим его как первый.
2. Переходит в шлюзовую комнату.
3. Закрывает первый люк.
4. Открывает люк выхода из космического корабля, можно определить как второй.
5. Выходит в открытый космос.
Впрочем, нашел и такое:
Поэтому необходима принципиально новая система шлюзования, исключающая неоправданно сложную систему замков шарниров и резиновых прокладок.
Новый шлюз должен состоять из трёх стенок расположенных друг к другу под углом 120о и закреплённые на одной подвижной оси.
Космонавт располагается между двух стенок и закрепляется фалом. После этого производится поворот системы на 180о и космонавт оказывается в открытом космическом пространстве. Затем он покидает шлюзовую камеру и по специальным трапам из скоб перемещается на внешний корпус корабля или станции, используя систему фалов, скоб и зеркальце.
Стенки шлюза должны быть прозрачными, что необходимо для правильного психологического настроя перед выходом.
Так же внутренние стенки шлюза должны быть покрыты специальной мягкой, не обязательно прочной, оболочкой.
Между оболочкой и внутренними стенками шлюза можно подавать воздух или какой-либо другой газ для комфортного выталкивания звездоплавателя в космос.
Данная схема обеспечит надёжное шлюзование космонавта, проста в эксплуатации и легко ремонтируема. Она устойчива к внешним и внутренним перепадам температур и давления, а так же не подвержена деформации.
Альнитак. Екатеринбург. 14.10.2009
Источник: http://volna56.narod.ru/shluz2/shluz4.htm
Зачем я это написал?
Всё, что делают инженеры - унылое говно, особенно, когда они пытаются показать своё знание математики
Ну так запости ссылочку на гитхаб на свои восхитительные проекты на Хаскеле, осиливший.
ну так выкинь свой компуктер в окно и кресло на котором сидишь заодно и пиздуй жить в пещеру там будешь заниматься систематизацией и формал сцайнсом, для этого достаточно иметь палку-ковырялку и на чём ей царапать
Ленивость. Каждая лекция о хаскеле содержит детальное разъяснение как оно внутри считается и разворачивается. И хаскелята друг дружку унижают за незнание точного порядка ленивой эвалюации произвольного выражения. Всё бы с ней ничего, но наступает потребность написать производительную реализацию чего бы там ни было. И здесь начинаются пляски с выбором fold, подстановкой seq и прочим дерьмом. Сортировочка с глагне выглядит хорошо, но крайне неоптимальна.
Сборка мусора, ебля с боксингом-анбоксингом, полный ворох проблем. А ведь так хорошо начиналось, нас кормили обещаниями что компилятор ну очень умный и всё соптимизирует за нас. Как бы не так. Когда приходит время выебать байты всю красоту куда-то сдувает, подключается ещё больше распорок из ghc и мы пишем уже почти как на си.
Пересборка мира на каждый чих. Неспособность нормально формировать dll. Cabal hell с постоянно ломающейся совместимостью пакаджей. Здесь мощь абстракций ударила обратной стороной.
Теоркат требует охуительной подготовки. Большинство хасклят нихуяшеньки не понимают ни монады, ни всю эту прилагающуюся чепуху.
В сухом остатке получаем эдакий найс трай, хаскель интересный, несёт в себе новизну, предлагает альтернативный подход, но всё это наполовину банально не работает, либо требует недюжинных ментальных усилий для решения казалось бы совсем простых задач.
Никак. Ты точно сойдешь с ума.
Хаскелль и не стремится быть производительным. Писать на нем полноценное приложение не стоит, однако он подходит для прототипирования бизнес-логики, позволяя сконцентрироваться на том, что нужно писать, а не как.
Потому что нефиг ебать байты на нем, это не Си и не Раст.
>позволяя сконцентрироваться на том, что нужно писать
В результате обычно ты так концентрируешься, что про бизнес-логику забываешь.
Проблема языка - это когда его используют пара аутистов для написания факториалов.
Как понять, что такое ФП?
Функцианальное программирование - это функции (высшего порядка). Элементы ФП сейчас есть почти в каждом современном языке программирования. И в Java, и в C#, и даже в JS. Равно как и элементы ООП есть в Хаскелле, но реализованы тоже через функции, поэтому он чисто функциональный язык.
>Как понять, что такое ФП?
Это ещё одна концепция, и она тоже легко ложится на наше человеческое понимание мира: «сунул, вынул, да пошёл».
ФП - это reference transparenty
>Эта концепция легко ложится на наше человеческое понимание мира.
О, дружище, "ООП хорошо для GUI" - это примерно такой же спид, как и "ООП хорошо для всего" - когда программисты обожглись об ООП, но проблемы гуйни глубже формошлёпства не исследовали, поэтому решили "ну ладно, ООП для %моей_предметной_области% - говно, но ведь КНОПКА - это же объект!!1". Ты ведь понимаешь, о чем я, а уёбок? Повторю другими словами на всякий случай: когда ты был маленьким и глупым и нихуя не шарил в своей предметной области, ты думал, что "всё есть (некий абстрактный) объект (про который я нихуя не знаю)" и что ООП идеально этот факт моделирует. Потом ты немного подрос и поумнел, и выделил в своей области множество взаимосвязей и закономерностей. И она наполнилась морфизмами, функторами, отражениями, естественными преобразованиями, пределами, копределами, сопряжениями и прочими знаниями, для моделирования которых убогое ООП ну никак не подходит. А гуй для тебя так и остался той областью, в которой ты нихуя не шаришь. Так вот, уёбок, не надо экстраполировать свою самоуверенность на все отрасли человеческой деятельности. Если ты охуенный спец по обработке сигналов, это еще не значит, что ты охуенный спец по чистке туалетов или лепке крудов. И если ты не видишь в лепке крудов никаких закономерностей, это еще не значит, что их там нет, и что любой виджет есть объект и не более того. Закономерностей там более чем дохуя. Я вот с ходу могу сказать, что гуйню лучше моделировать стрелками, чем объектами, а истинный спец по гуи тебе наверняка категорий пять навернёт, охватывающих визуализацию, валидацию, интернационализацию и локализацию, лейаут, помощь людям с ограниченными возможностями и хуй знает, что там еще может быть.. Поэтому пиши про то, что знаешь, а про гуй пусть лучше спецы по гуи напишут, от них то мы и узнаем, столь ли там хорошо ООП, или приходится еще каким-нибудь xml-ем в жопу поябываться.
>та концепция легко ложится на наше человеческое понимание мира.
Для «объекта» не существует формального определения. ООП вообще никак не формализовано. Это набор ad hoc практик, интуиций и советов бывалых охотников в стиле «чтобы копье лучше било мамонта, его должна обоссать девственица в полнолуние».
>но проблемы гуйни глубже формошлёпства не исследовали
Зато малолетний дебил, писавший эту тупую пасту исследовал, ага. Пусть свою диссертацию покажет, епт.
>Я вот с ходу могу сказать, что гуйню лучше моделировать стрелками, чем объектами,
Без реализации уровня Qt (или хотя бы дельфийского VCL) ты с ходу проследуешь под шконарь со своим кукареканием.
> а истинный спец по гуи
Пошлет нахуй борщепетухов и скажет, что лучше ООП ничего для гуя не придумано.
Тебя явно ткнули тут носом в "а как оно на практике?"
> Без реализации уровня Qt (или хотя бы дельфийского VCL) ты с ходу проследуешь под шконарь
Нормальный естественный вопрос инженера-ремесленника, коими являются профессиональные программисты.
А ты вместо ответа взял и обосрался. Какие тут выводы можно сделать?
мимоанон
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>
Да, спасибо!
мне кажется, на этом яп хорошо под кислотой кодить
ООП везде реализовано через функции, довен. Если ссылка/указатель/whatever на об'ект передаётся в функцию неявно и ты её не видишь, то не значит, что её нет и что функция перестаёт быть функцией.
Так-то.
>Вы прослушали мнение человека, не осилившего труды Карла Маркса в оригинале, но уверенно пиздещего при этом про Марксизм.
>Каждая лекция о хаскеле содержит детальное разъяснение
Может ты еще список всех лекций принесешь, чтобы мы проверили, действительно каждая содержит или не каждая?
>незнание точного порядка ленивой эвалюации произвольного выражения
Они всегда вычисляются в нормальном порядке, короче еще один фантазёр-неосилятор, дальше этот бред не читал.
Это про какой-то вымышленный тобой язык, но точно не про Хаскель.
>Эта концепция легко ложится на наше человеческое понимание мира
Является ли прямоугольник наследником квадрата? Колесо - это свойство автомобиля или свойство дороги, на котором оно стоит?
В ООП нет и не может быть функций, т.к. для функций нужно как минимум отсутсвие сайдэффектов.
https://www.functionalgeekery.com/episode-83-rahul-muttineni/
>Frege
Это параша, а не язык.
Слишком много джавы.
А в ЭТЕ ты просто пышешь на цацкеле, а компилируется всё в байткод виртуальной машины джава.
>что лучше ООП ничего для гуя не придумано
ООП гуй - говно и дрисня. С формочками в 90-х еще как-то справлялось (плохо), но для современных интерфейсов его надо нахуй выкидывать.
Реактивное ФП, впрочем, тоже не очень для гуя подходит. Думаю, лучше подойдет что-то из синхронных языков вроде Lustre.
FFE разный
Cрака тваей мамашки лутше, хех.
ВРЁТИ!
Запили Elm-like компоненты с локальным состоянием и соедини их сигналами, хуле.
Я не он, но, кажется, композициия в ооп - это включение одного объекта в другой.
Молодец. А теперь определение результата композиции двух объектов в ООП?
В ФП всё просто: (a ->b) . (b -> c) = (a -> c)
А в ООП? null
Ты реально не понимаешь разницы между композицией функций и композицией как семантической связью между классами?
Подробнее. Есть у меня class A, есть класс B.
Я создаю два объекта: a = new A, b = new B.
Какой результат a->setB(b)? Даже если бы был результат некий a', чем бы он отличался от а? Как мне произвести объектную декомпозицию? никак потому что в оопе объекты комбинируются процедурным быдлокодом, строгость которого где-то между юредическим соглашением и философским трактатом
>композицией как семантической связью между классами?
А какой с неё понт? Она не даёт никакой строгости, от того что в классе A есть метод setB(b: B), совершенно неизвестно что произойдёт после его вызова, что произойдёт с а, что произойдёт с b, понять это можно только посмотрев реализацию метода.
Вернее, разумеется, с а или с b ничего "произойти" не должно, а должен быть некий результат или экшн.
Результата инжекшна a в b обычно нет, потому что setA - не функция, а процiдурка, экшн с сайд-эффектом в виде изменения стейта программы, экшн этот не имеет никакого типа (оопе же), никак не определён и не может быть изолирован и проверен.
И правда, не подумал)
Т.е. без инкапсуляции это бы работало, и композиция объектов была бы определена?
Я как-то думал над этим. На определённом ограниченном варианте ООП, если бы a->setB(b) всегда возвращало некий с, можно было бы думать что этот с теперь имеет все публичные методы A, все публичные методы B, все их комбинации, то есть декартово произведенеие интерфейсов A x B, плюс все публичные поля (нахуй публичнве поля, геттеры/сеттеры же). Но по сути никакого декартового произведения не будет, так как методы имеют различные сигнатуры, различные типы, могут комбинироваться сайд-эффектным быдлокодом и вообще пиздец. С другой стороны можно рассматривать а как некий носитель стейта, а setB - типа сайд эффект, который его меняет. Но опять же в ООП сайд эффекты никак не типизированны и вообще как понять, чем теперь a отличается от a', если a->doShit() работало, будет ли правильно работать a'->doShit() ? Короче полная хуйня. Карделли конечно красиво стелит в своих пейперах, множества-хуёжества, но никакого толку нет, при первой же попытке применять какие-то формальные методы сразу всё летит под хуй. К тому же сама идея сказать что класс - это тип, уже хуёвая, помоему многие проблеммы именно из-за этого.
Да потому что в оопе нет никакого (.)
В твей формуле (.) это типа коньюнкция, а (=) импликация? Что-то вроде, если a имеет ссылку на b и b имеет ссылку на c, то а имеет ссылку на с? И что это даёт? Операция композиции где? Где результат? Где тип?
Если у тебя скажем а имеющая в своём стейте, кроме всего остального, ссылку на b, b имеющая ссылку на с, в резльтате инжекшна а в b у тебя будет null
что произойдёт, так это изменится стейт стейт, но как - хуй знает.
Вот я про него и говорю. Не в отношении постов выше, а вообще.
>Почему все так гонят на сайд-эффекты?
Потому что в большинстве императивных языков они плохо изолированы и не контролируются.
Можешь привести примеры таких языков?
А примеры языков, в которых они хорошо изолированы (кроме функциональных)?
>А примеры языков, в которых они хорошо изолированы (кроме функциональных)?
https://en.wikipedia.org/wiki/Esterel
>это единственный способ взаимодействия программ с миром, и с пользователями в том числе
Не единственный. Можно брать весь мир на вход функции и возвращать модифицированным на выходе. Всё, функция чистая, у неё нет сайд-эффектов.
>Почему все так гонят на сайд-эффекты?
Только потому что трудно ими управлять, и они происходят не там, не тогда, или не в той последовательности что надо. Весь этот хайп вокруг ФП только из-за более лучшего разделения эффектов. И то, подход х-ля с монадочками уже далеко не единственный.
В треде уже упоминались линейные/афинные типы. Например в Clean они позволяют делать деструктивные апдейты по месту, но при этом без потери чистоты.
http://thedeemon.livejournal.com/37515.html
Ну или в Mercury уникальные типы юзаются для IO.
С линейными типрами есть, например
>F* is a verification-oriented dialect of ML.
Вроде в растике ещё где-то юзаются для мемори менеджмента.
Ещё были регионы в ML.
Ну регионы - это не про сайд-эффекты все-таки, насколько я знаю.
Будешь долго размышлять над монадами.
>Народ, решил попробовать соснуть функционального хуйца. Стоит ли начинать с Хаскеля?
Да. Других вариантов, в общем, нет.
Как достигнуть функциональной нирваны и единиться с монадой?
1. Получить высшее в матеше на тему теории групп.
2. Освоить хаскель.
3. Проблеваться осознанием насколько убого программирование и сколько допущений и глупостей в той же хаскельной монаде.
4. Идти торговать на черкизон.
Нет. Для этого есть машлёрнинг на пердоне/крестах/gpu.
Как набор разнородной хуеты с парой общих свойств.
https://www.youtube.com/watch?v=eHicZV2H__8
так котегории эта обобсчённая хуита кароч
ей можит быть и множество и группа и топалогия типа врубаешь?
ваще теория котегорий ничево нового не даёт а только систиматизирует уже отработанные области мотематики типа вот ета пиздюлька из топалогии и воон та хуёвина из теории множеств ета у нас такая то котегория, братан
Хули ты пиздишь, гнида?! Самый умный дохуя? Мне шарящие пацаны по-братски выдали сначала теорию групп заценить. Смотри мне тут, сука, пиздеть ещё будешь, ебало накрошу.
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 мой сублайм нихуя не делает, кроме подсвечивания неиспользуемой хуиты и высирания всплывающих сообщений при ошибке компиляции.
ЕСТЬ ТУТ ПРАКТИКУЮЩИЕ КАЧКИ ИЛИ ВСЕ ТЕОРЕТИЗИРУЮТ?
Поставь кабалом в песочницу и не еби анону моск, если не можешь разобраться со стеком.
хорошо что в моём ламповом пхп такой хуйни нет
Кто-то не может в иронию.
Неправильный тип.
Два мешка котегорий, теперь работает. Т.е. отрицательные числа всегда в скобки пихать?
Я до этого подумал что дело в минусе и пробовал вот так в скобки не додумался, лол:
acos $ clamp $ -1.0 theta 1.0, но тайпчекер не ублажился. В этом случае я так понимаю оно вернуло функцию -1, потом применило к theta и обосралось от того что в clamp пихают 2 аргумента, а не 3? Просто хочу понять как оно там у математиков работает, тайпчекер мне кучу хуеты выдал
прафесар жи
я просто поржать захожу
с хаскелистов
лёрн ю
потом риал ворлд
потом бигиннинг хаскел проджэкт бэйст эпроуч
потом книги диля
а затем уже вэб-фрэймворки учи, приложения в машин-лёрнинге, дата сцайенс, финансах и так далее
Еще не понравилось отсутствие перегрузки функций, это может вкусовщина и щас меня тут обоссут мамкиными борщами, но это тупо, когда тебе нужно либо выдумывать новое название функций, как в каком-нибудь си, либо инстанциировать, как правило левый класс, для своих обязанностей.
Что мне реально нравиться в хачкеле и МЛях это алгебраические типы данных, каррирование, все эти функции высших порядков типа фолдинга, фильтры-хуильтры, функторы и паттерн матчинг. Но это все есть во всех приличных языках. Остальное только постоянно ставит палки в колеса. Ну его нахуй.
инб4: ко-ко-ко неосилятор порвался, несите следующего
>мне реально нравиться
Уроки иди сделай лучше. Или школьный курс повтори если великовозрастный.
Конкретно с этим словом всегда проблемы, хуй знает зачем рептилоиды мне так внушили, но на автомате всегда пишу с ь, и тем не менее...
Нравиться это инфинитив. Это что делать. Бегать, прыгать, летать, нравиться. Мне нравиться, мне казаться, мне улыбаться. Ты хочешь мне нравиться? Ты просто не представляешь как ты срёшь всем в голову своим "автоматом" на деле необразованностью.
>>938639
Как моя жизнь измениться после изучения Хаскеля? То есть вот есть ДО и ПОСЛЕ. В чем принципиальная разница? ИНБИФО: Раньше ты не знал Хаскеля, а теперь знаешь.
>но могущий в ЯП.
>еще не знает хаскеля
Кому ты заливаешь? Иди проходи introduction to programming with python на курсере, а потом возвращайся.
Все так, да. За перегрузку обоссал, да.
>introduction to programming with python
Но я всегда был за строгую типизацию и потому считаю питон говном.
>строгую типизацию
>в питоне строгая
Вангую что ты имел ввиду статическую.
Иди-ка реально programming for absolute begginers читани
>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 не меняется, разве там не должна возникнуть бесконечная рекурсия? Извините за тупой вопрос.
Где ты там бесконечную увидел? Это не рекурсия даже. Это n раз применить функцию "следующее число" к нулю чтобы получить собственно само n.
λ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
Так, я пиздец как обосрался. Надо спать.
Забудь последнюю строчку в том посте.
Но остальное прочти все равно, и вот это вот:
succ = λnfx.f(nfx)
succ 0 = (λnfx.f(nfx))0 = λfx.f(0fx) = λfx.f((λfx.x)fx) = λfx.f(x) = 1
Вообще любопытно где ты кодировку черча встретил. Не то чтобы особо малоизвестная или сложная тема, но хаскелисты с лямбдой даже до такой степени редко знакомятся.
>cabal hell
stack
>куча language extensions
Запиши их в cabal-файле проекта
>отсутствие перегрузки функций, это может вкусовщина
Так и есть
Со стеком у меня было ебли даже больше чем с кабалом. Там тоже гадание на версии lts и конпелятора и в итоге нихуя не собралось.
>Запиши их в cabal-файле проекта
Ты даже не понял в чем проблема.
Записал тебе в файл, справил нужду тебе в файл.
Конкретно в хаскеле - нет, он же ленивое хуйло. Чистота без гц возможна, луркай (внезапно) раст, клин, линейные типы, в меркюри вроде тоже такое было, регионы в мл... Короче, linear types memory management pdf и regions memoey ml pdf.
В меркурии, несмотря на наличие регионов есть мусоросборщик, обычный boehm_gc. В млтоне отказались от регионов, например, как и в окамле. Вообще, разве основная проблема не из-за персистентных структур?
Я точно помню, что читал пейпер про меркури без гц. Вроде диссер чей-то. Но это давно было, забыл, что там и как.
Основная проблема в структурал шаринге, из-за которого надо рефкаунт делать, если о датаструктурах говорить.
Да был пейпер вот этот
http://dl.acm.org/citation.cfm?doid=1375634.1375644
Но я так понимаю, там говорится, что они только кое-какую часть перенесли на регионы, в последней версии рантайма там как был гц, так и остался.
Спасибо, анон, теперь понятно.
Ну так это ж рисерч, его необязательно в мастер пихать.
Где можно спиратить книги с этого сайта. Заинтересовала A Framework for Scientific Discovery through Video Games
А хуй знает. Меня как-то не вставило, но я и не копался в нем особо.
Да стоит, там много крутых идей.
Но сама платформа сырая конечно же, ещё и релиз последний аж в 2014 был, хотя в мастер пушат регулярно, но там 1,5 рабочих силы на подхвате.
.Net-обезьянки опять пытаются натянуть гандон на глобус запилить тайпкласы
Для всего вышеперечисленного, если охота сразу, но без хардкора. На то он и язык общего назначения.
Я вот пытался долбоебам на работе задвинуть про Coq, так они теперь меня доебываются, говорят среда Coq для языка программирования Petooh. Они не со зла, конечно, но почему вот люди такие тупые?
Хех.
Не так и удобно, надо заключать в обратные кавычки типа getHui you inAnus можно записать как you `getHui` inAnus, нет бы сделали один символ.
Делать как в этих ваших фортах хаскель не умеет. Но есть расширение для ghc -XPostfixOperators
https://downloads.haskell.org/~ghc/6.6/docs/html/users_guide/syntax-extns.html
Вот и они тоже это говорят. И еще говорят, что это все для быдла и там quick sort написать нельзя. А сами юзают С++-парашу, лол, я ебу
1. Пикрил, хочу сделать слияние двух листов через определенную функцию, хуле оно выебывается?
2. Как можно красиво и практично извлечь сублист определенной длинны и с определенной позиции типа [1, 2, 3, 4, 5, 6, 7] subl (3, 3) = [5, 6, 7]?
Да они охуели. На хаскелле квиксорт в три строчки пишется. Правда, работает небыстро.
Квиксорт в Хаскеле неправильный, он соснет хуйца, если массив отсортирован по убыванию или частично отсортирован по убыванию.
Но ведь с++ еще хуже. Только там у меня он долго сортировал, когда по возрастанию было отсортировано.
А еще можно еще просто случайно перемешивать элементы перед сортировкой, вроде.
Там вроде O(n*n) получается + создание списков, не намного медленнее квиксорта.
Вот тут дауны сидят, пиздец. Что за три сорт?
> 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). Эта хуйня вырождается в сортировку вставками. Я как-то на Хаскелле делал нормальную быструю сортировку, так вот она выглядит не так, как в этом рекламном примере.
Именно так она и выглядит. Здесь передана самая суть алгоритма, и без мутабельного говна, как в императивщине. Работать должно даже быстрее, чем в Си, но у меня в бенчмарках получалось где-то 10 секунд (в си одна десятая секунды, в джаве полторы). Но это плата за няшную иммутабельность и стройность алгоритма.
Что тебе смищно? Сишник закукарекал? В Хаскелле иммутабельность и ленивость, а это по определению лучше мутабельности ибо большой простор для оптимизаций, так что может работать быстрее.
>ВРЕТИ РРРЯЯЯЯЯ!!1
Понятно.
Ну напиши мне квиксорт на хасцелле быстрее си. Пока что это все позорище и бредни маркетолухов.
мимосишник
Смищно2
Иммутабельность и ленивость нужны для выразительности языка. Бесконечные списки и всё такое.
Достигается выразительность ценой низкой производительности. Но там, где производительность не нужна, хаскель рулит.
>haskell
>выразительности языка
Смищно3
Хаскелл - это не для быдла язык, там даже для простых вещей нужно мозг использовать, чтобы было интересно, нужна тебе тупая понятность для даунов, бери питон или еще какую ссанину для быдла.
Вы только посмотрите на это небыдло. Хаскель не сложен, а просто немного непривычен.
>stateful программ
Что это за бредни? Сам придумал?
Главное преимущество функционального программирования - выразительность и стройность / строгость кодирования алгоритмов. Главный недостаток - непредсказуемо низкая производительность / эффективность программ, имплементированных на тьюринг-машинах. Если тебя это устраивает - бери ФП, нет - иди мимо.
Короче слушай сюда. Если ты считаешь себя разумным человеком ты должен выбирать хаскелль. Потому что все программы на нем получаются простыми и доступными как если бы их писали гении, но только если ты тоже не тупой убогий императивщик отсиживающий свою жопу. Это им важна производительность, а умные программисты таким голову не забивают, им важно, чтобы их код был непонятен говну, которое лезет изо всех щелей как тараканы в айти. Тебе еще будут втирать тут всякие быдлокодеры на языке "си-хуй соси" про работку что-то, но ты как разумный человек должен выбирать с заделом на будующее, когда все они будут насасывать хуи и их пидоров будут ебать в сочную сраку функциональщики огромным бесконечным списком с вот такой головой. А ты откроешь свой емакс под линуксом, который тоже к тому времени победит, и будешь писать код на хаскелле с искусственным интеллектом, и смотреть с недосягаемой высоты на этих гондонов, и лузгать семечки и бросать шелуху сверху, и это все потому что ты выбрал в свое время хаскелль.
А вот и императившик подтянулся. Что, готов уже, что мы тебе на ебало будем шелуху от семечек сбрасывать, пока длиннющий бесконечный список елозиет в твоем анусе, дружок?
Я не под тебя работаю, я вообще для всех пишу. Чего сразу если функциональщик, то жырный. Мы элита программирования, между прочим. Ты на себя вон посмотри, да на ебало свое, семками обсыпанное. Дибил императивный.
Двачну этого, я тот мудак с матрицами и нихуя там сложного, просто везде неудобно. Плюс любовь хачкелистов к однобуквенным переменным >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ми и т.д.
>Что конкретно вас заставляет учить хаскел, а не какой-нибудь раст к примеру или эрланг/окамл?
>раст - чек
>эрланг - чек
>окамл - чек
Осталось только хачкелем себя пощекотать
Beginning Haskell: A Project-Based Approach
Real World Haskell
Parallel and Concurrent Programming in Haskell
Первая хоть и называется бегининг, но там поясняют за все real world вещи, в принципе во многом повторяет real world haskell, но во многих местах испанец гораздо лучше излагает.
Третью еще не читал, чисто по совету анонов из треда, но судя по содержанию - годнота.
>однобуквенным переменным ... не бро
Неосилятором за версту несёт. Да как вы умудряетесь не понять главного?
Тут же как в алгебре, это один из важнейших способов достичь абстрактности той самой, ради которой ФП.
>Но там, где производительность не нужна, хаскель рулит.
> нужно мозг использоват
>Потому что все программы на нем получаются простыми и доступными как если бы их писали гении, но только если ты тоже не тупой убогий императивщик отсиживающий свою жопу.
>Неосилятором за версту несёт
>Пук
Аргументы уровня: чтобы жрать говно - нужно быть гением, если тебе не нравится говно ты просто тупой
Нормально всё. Проблемы у всяких хачкелей из-за ленивости и чистоты ануса и эрлангов из-за того, что это динимическая интерпритируемая залупа.
Тебе уже сказали, что на определенных данных (список отсортирован в обратном направлении) эта реализация будет давать N^2. Оригинальная квик сорт тоже будет О(N^2), но там при правильной реализации вероятность этого будет очень маленькой, тогда как в этой рекламной реализации на Хаскелле ты всегда будешь получать квадратичное время на хуевых данных.
>Здесь передана самая суть алгоритма
Нихуя тут суть не передана, quicksort - это randomized algorithm. Суть алгоритма в том, чтобы pivot выбирался случайным образом, тут ничего такого нет.
> Суть алгоритма в том, чтобы pivot выбирался случайным образом
Уоу-уоу-уоу, иди-ка Кормена наверни.
Quicksort сортирует in-place, а здесь еще гора аллокаций, которые тоже, мягко говоря, небесплатны. Отсюда и тормоза в несколько порядков.
Ты, я смотрю, типичный функтодурачок: над тобой поржать хотели, слона не приметив - а ты вообще не понял, о чем речь, лол. Не удивлюсь, что ты всерьез думаешь, что ту ссанину может компилятор оптимизировать, лол.
Почти всегда это не всегда как бы, как это не то же самое?
>еще гора аллокаций, которые тоже, мягко говоря, небесплатны
O(NlogN) == O(c*NlogN), так что ни о каких отличиях на порядки тут речи не идет, иди что-нибудь по теории алгоритмов почитай, ебанашка.
Аллокации у него, блять. Может, пруфанешь дизассемблером этох хуйни?
По мне, так там должна быть оптимизация - список-то один и тот же петушится.
>O(NlogN) == O(c*NlogN)
Чтоб тебе в очереди к терапевту с такими константами стоять, функтоблядок хуев.
>пруфанешь дизассемблером
Ну пруфани дизассемблером. Хули ты от меня-то ждешь, я не буду возиться с этой поебенью. Тем более, что цифры в сети есть, лично мне этого достаточно.
>список-то один и тот же петушится
Да петушишься здесь только ты, хуесос.
>Хули ты от меня-то ждешь, я не буду возиться с этой поебенью.
Забавно, но именно ты высираешься ИТТ про оптимизации и аллокации.
>Тем более, что цифры в сети есть, лично мне этого достаточно.
Какие цифры? Цифры от чего или для чего? Цифры количества хуев, побывавших в пизде твоей мамаши?
Нет, ты. Ты тут доказываешь, что "ВРЕТИ ХАСКИЛЬ НИТАРМАЗИТ!!1! АРРРЯЯЯ!!!!1!". Хотя квиксорт (и еще хэш-таблицы) - это классический предмет троллинга функтопидоров. Этим занимаются все, кому не лень - от мимокроков из соседних тредов до вполне серьезных исследователей, пишущих научные работы про эти косяки.
>>941947
>ХУИ В ТВОЁЙ МАМКИ АБЫРВАЛГ УДУШУ РАСТОПЧУ
Какой же ты жалкий, тупорылый долбоеб.
>Нет, ты. Ты тут доказываешь, что "ВРЕТИ ХАСКИЛЬ НИТАРМАЗИТ!!1! АРРРЯЯЯ!!!!1!".
Ты попутал, пиздец. Я просто указал, что вот эта вот реализация квик сорт, которая есть в любом учебнике по любому функциональному языку, неправильная.
Плюс я сделал предположение, что даже в этом случае Хаскель не должен создавать 100500 списков, ведь это можно оптимизировать. Так ли это на самом деле, я не проверял. Ты же начал визжать про какие-то "отличия на порядки", хотя это вообще к теме не относилось.
>классический предмет троллинга функтопидоров
Мимо. Я вообще из жаба-треда мимокрокодил.
Как ты можешь рассуждать о каких-либо абстракциях, если не смог додуматься, что, с моей точки зрения, это применимо попросту к большинству вещей у функтоблядков?
Да и о чем с тобой разговарить, если ты не знаешь, что 1000N и N отличаются именно что на порядки, и это и есть тот слон, которого от тебя демонстративно прятали за спичечными коробками.
>Да и о чем с тобой разговарить, если ты не знаешь, что 1000N и N отличаются именно что на порядки
Ебать ты деревянный. При чем тут порядки, когда O(NlogN) и O(N^2) - это совсем разные алгоритмы? Ты же утверждаешь, что квиксорт на Хаскелле - это 1000 * квиксорт на С. То, что в качестве рекламки пишут на Хаскелле - это не квиксорт.
И что там? Какие-то проектики типа LABA1 без ридми и описания. Нахуй так жить?
Ну точняк еба нах. Он императивщик. Ебало подставил быстра свое. Мне шелуху от семак нада сбрасывать. Лашок ебаный.
Конкатенативщик c амбициями в чистую declarativness, инфа сотка, мне только что лично Хаскель Карри нашептал
Ты че базаришь так нахуй? Ты че меня запомоил ебанат ахуел? Ты кому предьявляешь нахуй? Чушел блять. Иди нахуй атсуда дурак ебаный.
>>942035
>>942036
Кароче бля пояснил нахуй этим по хаскелю хуем в их сладкие жопы сигу потушил об очко. Под шконарь загнали абассали ептать смотрите не запомойтесь ребзя.
Зачем нужен голанг если есть божественные beam languages?
Ну ты же не можешь в математику. Ты не понимаешь, что 1000n^2 хуже n^2, а оно хуже nlogn, грубо говоря. А в сишке константа и близко не эта условная тысяча.
Ну нихуя математик великий. Еще раз, специально для тебя в 10-й раз: рекламная реализация квик сорт на Хаскелле при сортировке списка, который уже отсортирован в обратном порядке, будет гарантированно O(N^2). Тогда как правильная рандомизированная реализация на С, Джаве, Сишарп и т.д. асимптотически также будет O(N^2), но в общем случае будет O(NlogN). Что тебе не понятно?
А где кстати прочитать про O(N^2) и вообще про то что этот квиксорт на самом деле не квиксорт?
С пруфами естественно, в более-менее математическом смысле.
Я чет не нагуглил даже сходу.
Функтодурачок, ты не дергайся и не петушись. Давай спокойно посмотрим, что там.
https://android.googlesource.com/platform/libcore/+/android-4.2.2_r1/luni/src/main/java/java/util/DualPivotQuicksort.java#127
В Java используется Dual Pivot Quicksort, там никакого рандома нет (как и в классическом квиксорте с первым/средним опорным элементом). А то, что обычный квиксорт имеет квадратичную сложность в худшем случае - так это в любом языке так, не только в тормозном хаскелле. И хаскелльный сорт тормозит в десять раз не поэтому. А теперь скажи дяде "спасибо" и иди уроки учить, дурень.
Ты не смотри, что там "android" написано, в доках Оракла прямым текстом указано, что у них тот же самый алгоритм.
Суть не в этом, очевидно.
Чем плохи конкатенативные языки? Тем более, есть с реализациями теории типов. А уж для калькуляторов и микроволновок ничего лучше оных нет.
Ничем, все то вам на двачах кажется что в каждом посте пытаются опустить.
Я уже заебался с сублаймом, этот пидор не работает так как мне нужно, вечно проебывается с синтаксисом, хуячит отступы табами, да и вообще хуево сделали. Попробовал три плагина на IDEA, но че-то ну ее нахуй, глючная неудобная хуета, ее только для явы применять + косячные плагины.
Посоны с редита пишут про охуенную поддержку атома и сейчас его качаю, но помнится раньше это был убогий лагающий высер и чуичка подсказывает что за эти пару лет ничего не изменилось.
В чем кодишь анон?
1. У тебя после применения map на список получается список каррированных функций, так что да, zipWith
1. Накатывал ли кто Nix / NixOS? Какие преимущества, недостатки? Зависимость есть?
2. Объясните мне, почему я до сих пор не накатил XMonad?
Как-то ты хуево настроил саблайм, если у тебя такой пиздец.
Табы пробелами настраиваются в правом нижнем углу, выбери просто "Indent using spaces" и выбери нужную длину.
Дальше накати SublimeHaskell и SublimeREPL и живи счастливо.
Можно ещё заморочиться и hlint, и автодополнение добавить, но дальше это уже свистоперделки лично мне и без них норм
Хз хз, мне нравится сублайм, но для хаскеля он какой-то хуевый. Все это я накатывал, однако работает через жопу. Ладно еще отступы, их можно и конвертнуть в три клика. Но эти плагины конкретно хаскель поддерживают криво. У меня постоянные проблемы с синтаксисом let и where. Если переносить их на следующую строку, то подсветка всего что ниже идет по пизде. Потом ебанутые всплывающие описания ошибок распидорашивающие строки. Так и не нашел как их отключить, без отключения всего остального. Hsdevs вообще унавоживает почти весь экран разными огромными иконками рефакторинга, неиспользуемых функций и т.д. Ну его нахуй.
Сейчас попробовал хипстерский атом, вроде годно сделали, работает быстро(ставил до этого полтора-два года назад и он тормозил сильнее идеи, обвешаной макакоплагинами на гигабайт), радует глаз. Все плагины завелись без ебли в гамаке ну не совсем без ебли, некоторые пути все же надо было прописать в настройках, но это мелочи
Посмотрю как дальше пойдет, но пока - заебись
Аргументация для пидоров?
3. Ненужно
Я не вхож в круг любителей вырвиглаза и бесконечных конфигурирований-переконфигурирований в консольке.
Зато я вхож в твою мамашу. Похуй мне, куда ты входишь, я просто пиздаболов не люблю. Ты имакс в глаза не видел и утверждаешь, что он не иде, а он иде. Ирл я бы тебе уже зубы выбил, гнида.
>Ирл я бы тебе уже зубы выбил, гнида.
А по айпи ты меня еще не вычислил, школоборец?
>я просто пиздаболов не люблю
>Ты имакс в глаза не видел, я так скозал
Ультралол, самоистязания там не устраиваешь?
Что мне тебе возражать? Емакс продвинутый блокнот, можно изнасиловать себя и превратить его в иде, но это для отдельных любителей капчевать из консоли и собирать все вручную. Для обычных, нормальных людей, которые не пердолились емаксом с времен рождения иссуса хуево называть это иде.
>>942350
> Для явы ничего лучше жидеи нет всё равно.
Поправил тебя
инбф: ко-ко нетбеансб эклипс
> Емакс продвинутый блокнот
Еще раз: ты либо дебил, либо не видел толком имакса, либо и то, и другое. Не пизди о том, в чем не разбираешься, гнида.
Ой акстись ты нахуй со своим емаксом, ставил и пользовался не один раз. Иди нажми C-x C-c и съеби из треда, сектант.
Пидораха, я тебе указываю на фактическую ошибку, которую ты допустил, а ты из этого делаешь предположение, что я сектант\пользуюсь имаксом. И со знаниями проблемы, и с логикой не лады, и имакс не осилил. Типичная гнида.
А потом скинем это все в джаватред, пускай эти карланы императивщики ебаные поплачут над своими короткостволами. Заодно узнают, чем их и ихних мамок ебать будут когда мы к власти придем.
Да. Тогда тем более надо сделать, веселей!
Что за унылая зелень пошла, НА ФАКТИЧЕСКУЮ ОШИБКУ он мне указывает, иди уроки доделай, мамкин демагог.
> пускай эти карланы императивщики ебаные поплачут над своими короткостволами
12/12 см/cм, 189/73 см/кг, 26 лвл, Mlton, SML NJ, F#, haskell.
Чет так себе у тебя план
Смотри-ка, а в Принстоне считают, что и в такой реализации рандом есть. Наверное, они долбоебы, да?
http://algs4.cs.princeton.edu/23quicksort/QuickDualPivot.java.html
>обычный квиксорт имеет квадратичную сложность в худшем случае - так это в любом языке так
Да, но если список отсортирован (или частично отсортирован) в обратном направлении, то рандомизированные быстрые сортировки с большой степенью вероятности будут давать линеарифмическое время, а та хуйня на Хаскелле будет гарантированно квадратичной в таких случаях.
Скажи, что ты траллируешь, плес? Я тебе одно и то же 100 раз повторил, ну не бывает же таких долбоебов как ты.
> имеет квадратичную сложность в худшем случае
Как раз чтобы избежать этот худший случай и делается shuffle. В принципе можно без него.
>а здесь еще гора аллокаций, которые тоже, мягко говоря, небесплатны
>маня думает что хаскель не может в реюз read-only памяти и на каждый map будет создавать новую коллекцию
>2017
хотя по
>Что за три сорт?
можно было и не читать эту говноцепочку
олсо,
>это инплейс
с какого это хуя? потому что в деструктивной сипараше делают инплейс всего что только можно? но вообще-то одним из преимуществ квиксорта является естественное распараллеливание, что в случае с инплейсом не очень сочетается
В Маклейне
Ты даже текст шрифтом помельче не додумался прочитать - я уж не говорю о мануале, дебил.
Омич? Кто это?
Я только LYAHFGG читал, цикл статей про монады (тот, что с картинками), ну и десяток-другой статей на пиндосском, остальное - курс в универе и практика.
Есть класс Vector и тип Vec3 являющийся экземпляром первого.
В коде перемножение матриц, для чего берется строка и столбец матриц, преобразуются в вектора и вычисляется скалярное произведение(dot).
Можно ли ублажить академиков без включения очередного анального расширителя(FlexibleContexts)?
Да хуета обычно эти кружки/курсы( за ИТМО у анона не скажу) в 99% случаев будут задвигать элементарные вещи типа что функция может принимать и возвращать другие функции, что есть map, filter, reduce(про которые сейчас даже явамакаки знают), каррирование, расскажут как жи жить без присваивания и как делать циклы рекурсией + про хвостовую оптимизацию, научат сопостовлять паттерны и в лучшем случае еще объяснят за адт. А, ну и ленивость еще.
Всю эту хуйню можно за часов пять с нуля самому освоить в любых книгах про хаскель. А продвинутых вещей и нахуя вообще оно все нужно там нихуя не рассказывают ограничиваясь мантрами вроде "ну епть, имутабельность, паралеливать легко, функционально же, пацаны зауважают".
Есть знакомый, который от работы был на такой конференции про фп где тоже рассказывали не больше того, что я перечислил. И теперь он думает что стал спецом функциональщины и если где-то заходит разговор об этом начинает с видом эксперта рассказывать как это все круто, как у него точка сборки сдвинулась и открылась суть всех вещей. Проигрываю всегда с этого
Минск, Карла Маркса 38
Мальчик, знаешь, что с тобой не так? Ты привык жить в своих субъективных маняфантазиях.
Ты не понимаешь, в чем суть промышленного программирования: так же, как в юриспруденции судят не по "справедливости", а по закону, так же и тут у нас руководствуются не интуитивными манявыводами (которые дауны вроде тебя называют "здравым смыслом", "логикой", и т.п. - ибо им кажется, что они мыслят единственно верно), а отраслевыми документами. Весь цимес троллинга именно в этой твоей ошибке, но ты, тупорылый школьник, никак не хочешь ее осознать.
Оракл, Гугл, Эппл и прочие используют вариации квиксорта, в которых никакой рандомизации нет - а это значит, что ты не прав (т.е. обосрался). Дело не в оптимальности или неоптимальности такого решения, а в том, что оно именно таково по факту.
У нас ФП читают на 4 курсе, довольно продвинуто. В конце семестра нужно было написать свой ЯП, желательно с реплом.
Итмо-кун
Мне прямо даже интересно, где это может пригодиться в Реальной Жизнитм. Так же, как и с олимпиадами - в один прекрасный день гугл заявит, что олимпиадники-задроты пишут хуевый код, транспонирующий коней в вакууме на скорость, и нахуй не сдались?
Я уверен, что тебя бы выебли в очко, если бы ты использовал ту реализацию на Хаскелле в одной из упомянутых тобой контор (Оракл, Гугл, Эппл).
Тебя бы ебали, а ты визжал про
>суть промышленного программирования
>в которых никакой рандомизации нет
Там более навороченные оптимизации. Открой хотя бы исходники класса Arrays в Джаве.
Опять этот хуесос захрюкал, найс.
>я того мама рот ибаль
Вот только пока что хаскелисты визжат на хую гугла, независимо от того, что пишут. прям как мамка твоя
>Там более навороченные оптимизации
Выходит, рандомизация не признак настоящего квиксорта по твоей же логике, и тебя бы за нее выебали в жопу. Пиздец ты тупой, ты думаешь, что мне что-то докажешь, а на деле получаешь все больше хуев на свой ротан. Ну как так можно, тебе что, нравится?
Ну если конкретно об языке, то на хаскеле пиздато парсеры писать. Взял megaparsec/attoparsec - и в путь. Либо код с высокой степенью надежности.
Но его основная ценность не в этом, а в прочищении сознания, возможности взглянуть на языки программирования и с другой стороны. Если умело комбинировать ООП и ФП, то можно получать красивый, эффективный и легкий в сопровождении код. По-моему, оно того стоит.
lens over tea загугли еще
ты похоже нихуя не понимаешь как работает $
пользуйся скобками:
let combine row col = dot (fromTuple row) (fromTuple col)
newElem rowIndex colIndex = combine (getRow rowIndex mrx1) (getCol colIndex mtx2)
И тебе спасибо
>>943522
>ты похоже нихуя не понимаешь как работает $
Апликация функци c пониженным приоритетом, не? В том коде сначала было как ты написал, это потом я уже знаков там вместо скобок нахуячил. Но ошибки выдает одинаковые, а вопрос решился уточнением типа после вызова: (fromTuple row :: Vec3). Что-то мне казалось так уточнение типа не будет работать, а оно работает. Вот и сейчас я чет туплю на этом пайпе ибо заебалось по евгейски писать, справо на лево. Но нихуя не работает, хотя на простых примерах скользило как по вазелину.
У меня в универе есть обязательный курс, посвященный парадигмам программирования. Функциональное программирование на Haskell — одна из тем. Кроме того, рассказывается много чего про нетипизированное и просто типизированное лямбда-исчисление, про выведение типов, доказательсво корректонсти системы типов, про let-полиморфизм. В общем, теоретическая основа того, с чем работает Haskell.
infixl 0 |>
Они и программируют так же.
>Без реализации уровня Qt
React+Redux это не Qt, но вполне себе мейнстрим и вполне себе стрелки вместо объектов.
А может старик?
Двачую этого. 13 лет. 160 рост. вес не знаю. писюлёк 7 см. занимаюсь в кружке.
Yoba haskell third edition.pdf
Нет, прямоугольник и квадрат - инстансы разных классов (но могут наследоваться от единого класса polygon)
Колесо, ясен хуй, свойство автомобиля. Но ничего не запрещает определить интерфейс для взаимодействия с дорогой.
Если я пну твою пеку, когда она будет чистую функцию выполнять, значит ли это, что она будет с сайдэффектами?
Это суть функтопетухов-неосиляторов. Устраивать бессмысленные выяснения, что было раньше - курица или яйцо.
Так вот, есть у нас одна элементарнейшая вещь, недоступная вашим убогим пост-процедурным мозгам. Слушай внимательно, недоумок.
Все зависит от того, под каким углом ты рассматриваешь систему. Если ты анализируешь какие-нибудь транспортные потоки, например, то выделять у автомобилей колеса вообще может быть бессмысленно. Дело в удобстве - если тебе удобно решать поставленные задачи, сделав колесо свойством машины - ок, делай так. Если свойством дороги, или еще кааким-нибудь внезапным способом - тоже найс. А вся шизофреническая хуета на тему "истинного устройства мира" идет сразу нахуй, у нас тут индустрия, блять, а не кружок по философии.
>Нет, прямоугольник и квадрат - инстансы разных классов (но могут наследоваться от единого класса polygon)
Когда-то на RSDN была эпическая тема насчёт того, что это и есть класс Polygon, а у него два метода, догадайся кокие.
Можешь просто почитать заголовки разделов статьи вот этой статьи.
https://habrahabr.ru/post/303984/
Особенно интересно выглядит пятый пункт в свете предыдущих четырех. Еще одно напоминание, что ФП с серьезной наукой, вообще-то, имеет гораздо меньше общего, чем втирает нам функтобыдлота.
Кстати, этот вариант тоже вполне соответствует концепции ООП.
И весьма даже удобен, если, например, полигон часто меняет форму по задаче (в редакторе диаграмм, например).
А еще в игрострое есть архитектура ECS (Entity-Component-System), которая тоже является ОО.
Прямоугольник, если разделить его на два - будет два квадрата. Если же квадрат разделить на два - будет два прямоугольника.
Ну, доказывай давай, геометр.
Было бы готово - не спрашивал бы. Выдаёт не гуглящуюся ошибку.
Почему нет? Есть же инстансы Category (->) и прочей хуйни, прямо как для других типов.
В смысле приседаешь?
Отвечу вам на вопросы завтра вечером. Сейчас нет времени, да и спать пора.
>В смысле приседаешь?
Шуточка про хаскель и приседание со штангой, врпочем забей.
Раз такое дело ты там поподробнее простынку то накатай. Как попал\начал писать инб4: берешь и без задней мысли пишешь, что пишешь, плюсы-минусы со стороны практикующих язык не на метавычислениях факториалов.
Жирным ебанатам ты отвечаешь, а мой вопрос по теме треда >>947006 почему-то игноришь. Опять все скатилось в говнище.
Нет
Нет.
Ну катись к хуям. Лол, зашел на двач и строит из себя целку. Бутыки, хуи ему мерещаться, нет чтобы взять и написать будет хуйней страдать. Аттеншн вхоры на другой доске, занятой.
Нет.
Ну вот раз говнище, так и будешь сидеть, в блокноте программировать.
А этот хер ушел свою ламповую работку работать.
А ты хуи сосешь. А ты сосешь хуи. Хуи ты остался сосать, понял?
>>948839
Что за бутыки еще? Да аттеншн вхора тут только ты, блять, додик.
В смысле жирный ебанат?
Отвечу вам на вопросы в следующем. Сейчас нет времени, да и ссать хочу.
>А ты хуи сосешь.
>А ты сосешь хуи
>Хуи ты остался сосать, понял?
>Да иди соси уже хуй
Эко тебя на хуях повернуло, не беснуйся так ,латентный, найдешь себе крепкого хуйца.
Себя, что ли?
В смысле шлюха?
Отвечу вам на вопросы на следующей неделе. Сейчас нет времени, да и к плите пора.
>>947006
Нет.
Пишущий в основном на хаскеле на работе вкатился.
Задавайте свои ответики
Мимо создатель хаскеля
Задавайте свои ответики.
Мимо создатель вселенной.
В том же что твой папка. Всмысле вставлял свой капиллярный спрут в математиков и стрелял.
Ты бы и в собаку стрельнул.
Раунд!!
>и этот конструктор создает type values не знаю, как правильно назвать
просто types. type constructor создает типы.
> Получается, функции - это значения типа ->
нет типа (->), это конструктор типов с двумя параметрами. применишь его к двум типам (например Foo и Bar) - вот тогда получишь какой-то тип (Foo -> Bar) и значениями этого типа будут функции
Монады же. Передаем функции на вход весь мир, возвращаем измененный
Спасибо, теперь понятно.
Возник еще вопрос, поясни, если знаешь: у меня есть одна небольшая задачка по парсингу определенных спецификаций на естественном языке, там есть иерархическая система вида раздел, подраздел, глава, пункт и т.д. Там должна быть возможность построения что-то типа AST, а также возможность определения ошибок, например, после главы 1 идет глава 3. Текст на естественном языке, но дохуя формальный и имеет достаточно четкую структуру, соответственно, можно слабать какую-никакую грамматику. Подойдет ли для этого parsec, или я совсем ебанутый и там что-то другое нужно использовать?
Да выебнуться хотелось, parser combinators, вот это вот все. Хотя и в джаве есть что-то подобное, типа jparsec.
Нет.
Ты там учебник по природоведению собрался, что ли, парсить, слышишь, долбоеб?
Выпендриться хаскелем он собрался, задрот хуев.
Почему при построении котегории, где объекты – типы данных, а морфизмы – функции, из варианта типизированного лямбда-исчисления на комбинаторах получается замкнутая симитричная моноидальная катигория (подобно Hilb, где объекты – канечномерные гильбертовы пространства с обычным тензорным произведением, а морфизмы – линейные операторы), но не декартова, каковой является Set?
Дада, это из раунда бабки.
Вырос и ссу за шиворот всем прогматикам 9999 уровня и пишу на том, на чем интереснее
Двачую. А работка не нужна, нам и у мамки хорошо.
Чувак а зачем ты с ним разговариваешь? Он же тролль простой. Необразованный. Давай лучше за хаскель поговорим. Ты давно программируешь на хаскиле?
Я вот щас свой лисп пишу, со статической типизацией.
Этот ваш лисп пока не очень понятно где применять.
Напишите чтоли пару саксес стори внедрения функциональной парадигмы в энторпрайз или хотя бы в вебе.
Сразу оговорюсь. Интересуют только чисто функциональные языки. Диалекты лиспа, хачкель. Всякая хуйня С поддержкой функциональной парадигмы типа скалы не интересны. Асинхронные неблокирующие сокеты я и на яве сделаю.
Интересно именно внедрение в бизнеслогику
Кроме чистоты функций можно вспомнить еще частичное применение функции, композицию функции, неизменяемость данных, монады-монадочки и ленивые вычисления. Еще можешь посмотреть на комбинаторное программирование, стэковые языки.
Хотя, надыбал еще такой красочный pdf с мемасиками на 83 страницы почему Хаскель хороший: http://camlunity.ru/swap/haskell/whyhaskell.pdf
Дано: кортеж вида (Just "YOBA", Nothing, Just ""). Валидность третьего поля может зависеть от содержимого второго.
Ожидаемый результат:
— Для невалидного значения: ["2 is Nothing", "3 is an empty string"];
— Для валидного значения: { one: "YOBA", two: "second value", three: "third value" }.
Спецификация неполная, но суть должна быть ясна. Как сделать это кривым и многословным образом очевидно. Как сделать это с помощью красивых зигохистопрепроморфных аппликативных пандорических функторов я не понимаю.
Но я и на лиспе могу писать в чистом стиле, если не буду применять переменные.
И на хаскеле - в грязном с монадой IO.
>>950404
>частичное применение функции
>композицию функции
>неизменяемость данных
>ленивые вычисления
Но это все есть в Лиспе.
>>950419
По крайней мере по лисповскому коду логика понятна. А по хаскалевскому - нет, даже перл и тот читабельнее.
Ну мы в конторе заменили весь старый JS стек на ClojureScript + Reagent + Garden, полёт нормальный. Был адовый ебаторий со стандартным реакт стеком, теперь ебаторий значительно меньше. Такая вот стори. Хотя можно было бы заменить на Elm, но у нас все идейные динамикопетушки, так что вот так.
>По крайней мере по лисповскому коду логика понятна. А по хаскалевскому - нет, даже перл и тот читабельнее.
Это ты просто еще не разобрался и не привык. В хаскеле гораздо читабельнее код и как правило короче. Даже те мозговыносящие вначале конструкции это дело привычки и показывают что ты пока плохо усвоил хачкель. В лиспе все эти бесконечные вложения, вложений вложений уж точно менее читабельны.
Очень много сокращений, поэтому ничего не понятно. Приходится в голове код достраивать.
Было бы интересно посмотреть.
Браузер - одно из самых сложных десктопных приложений, заебешься писать, чтобы он полностью понимал все стандарты и при этом еще не тормозил.
Может, борщехлебы продемонстрируют на таком примере преимущество уличной магии функционального кода? Будет намного убедительнее сотен паст.
Где можно посмотреть твой проект?
Спецэффекты для Властелина колец рисовали в пакете для работы с трехмерной графикой, написанном на лиспе - Izware Mirai: http://franz.com/success/customer_apps/animation_graphics/izware.lhtml
Есть опенсорсный клон одной из программ в этом пакете, написанный на эрланге: http://www.wings3d.com/
Что эрланг?
Кроме создания конечных автоматов и работы с соединениями на что он годен еше?
Работа со строками как листами через паттернматчинг и фолды хуелды?
По мне так не серьезно.
Кроме как коннекшен пул использовать эрланг я придумать задач не могу.
>>950510
Сорян но это спорное решение. Могли зоть на рельсы с джангой перевести. Причем тут функциональная парадигма?
Я именно о использовании парадигмы спрашиваю а не языков. Просто на той же явке я могу любую задачу решить с помощью ооп и вообще без Функциональщины.
Мне бы пример уровня.
Вот мы на бекенде парсили джейсоны потоковыми парсерами, а теперь на лиспе парсим в 20 раз быстрее и код проще
> создания конечных автоматов
Что ж ты делаешь!
> и работы с соединениями
Ахахахахаха...
> на рельсы с джангой
> клиентсайд
...прекрати!
> Причем тут функциональная парадигма
> реакт
ЧТО Ж ТЫ ДЕЛАЕШЬ АХАХА ПРЕКРАТИ Причем хочу заметить, что "при чем" пишется через пробел.
>Что эрланг?
>саксес стори внедрения функциональной парадигмы в энторпрайз
А других и нет, кроме Эрланга и Скалы.
Не понимаю что ты порвался на пустом месте, но туши пукан истеричка.
>>950691
Скала не чистый функциональный язык. Я о ней сразу сказал. Эрланг нишевый и особо задач кроме тех что я описал выше у него нет.
Я все еще жду примера. Как например лисп используют на бэкенде для парсинга, семантического анализа, ии или нейросеточек.
Двачую адеквата, "причем" нужно было через пробел
>>950727
В чем пичалька? Я не ратую за питухон, но поясните что было такого особенного в лиспе, что нужно было искуственному интеллекту?
Единственный мнимое преимущество это гомоиконность, если ты хотел своего киборга на ГЕНЕТИЧЕСКИХ АЛГОРИТМАХ. Но в 2017 генетическими баттплагами только самые отбитые пользуются.
Нейронки, классификаторы, кластеризаторы и прочие распознаватели паттернов т.е. 99% современного мля нихуя от лиспа не получили бы. Кроме гемора с привинчиванием сбоку к анусу 9000 библиотек, написанных не на лиспе.
>Единственный мнимое преимущество это гомоиконность, если ты хотел своего киборга на ГЕНЕТИЧЕСКИХ АЛГОРИТМАХ
Дело не в них. В 60-е считалось, что интеллект это такой символьный процессор. Отсюда и гомоиконный лисп.
>Нейронки, классификаторы, кластеризаторы и прочие распознаватели паттернов т.е. 99% современного мля нихуя от лиспа не получили бы.
На самом деле учитывая что современные либы для нейронок это специализированные CAS, получили бы. Просто люди выбрали "более сложно устроенная библиотека, зато более простой вызывающий код", а не наоборот.
>Могли зоть на рельсы с джангой перевести.
Хм, я думал что из контекста тебе будет понятно, что речь шла про веб-фронтенд, какие рельсы с джангами, о чём ты.
Ну так я ответить тебе не могу, так как не понимаю о чём ты толком спрашиваешь. Какие теоретически приимущества даёт ФП? На эту тему в сети материала навалом. Какие приимущества оно даёт в конкретной области, например, в веб-фронтенде? На эту тему тоже много статей, тот же Tonsky из русскоязычных нормально пишет конкретно по веб-фронтенду. Какие конкретные вещи были заменены на другие и дали за счёт этого лучший результат? Ну тут, на мой взгляд, вопрос вкорне неправильный, и сразу детектит неправильный ход мысли у спрашивающего, от чего отвечать ещё больше не хочется. Решение конкретной задачи из области прикладного программирования (типа выгрузить вооон тот отчёт, или распарсить вооон ту хуйю) выполняется 10 разными языками с 10 приблзиительно одинаковыми результатами, разницы нет. То что тебе на языкнейм удалось решить прикладную задачу так, что она стала выполнятся в 20 раз быстрее, чем на языкнейм2, значит только, что решение её на языкнейм2 было выполнено из рук вон плохо. Железо работает одинаково, под капотом выполняется обычный низкоуровневый код, рост увровня абстракции может только замедлять и усложнять выполнение программ, а не наоборот. Приимущества выбора какой либо принципиальной модели, в частности ФП, в прикладном программировании определяются исходя из куда более сложных и одновременно при этом довольно банальных факторов, чем решение сцаной конкретной задачи как в олипиадке, параметры решения которой можно было бы мерять такими показателями как скорость выполнения кода, кол-во строк и прочая хуйня. Так что мой ответ будет такой: мы используем реакт через реагент и кложу для устраниния проблем, которые постоянно возникают при разработке веб-приложений с использованием стандартных подходов базирующихся на чистом реакт стеке или на упаси боже джава-лайк ангуляре.
Эти маняпроекции.
У тебя шизофрения развилась от изучения хаскеля или ты стал изучать хаскель из-за своей шизофрении?
Кстати математики там ничего не пытались придумывать чтобы ввести ординалы в комплексные числа?
>Mathematical side note: the Num class generally models algebraic structures called rings.
Тогда я не понимаю смысл названия Num. Почему они не назвали его Ring?
>И да, всё тобой перечисленное глотает пыль на обочине
Только вот у хаскелля ебаный толстый рантайм, хуевая производительность и таки непонятный синтаксис, причем он непонятен не потому что там много каких-то ебо-символов, а именно потому что Хаскелль вводит кучу всякой хуйни, которая даже не существует в реальном мире.
Т.е. нет сомнений, что на нем можно как-то реализовать почти любую задачу, вопрос будет только в оптимальности конечного результата, в затраченном времени и возможности все это поддерживать.
>а именно потому что Хаскелль вводит кучу всякой хуйни, которая даже не существует в реальном мире
Но ведь монады существуют в астрале, про них еще Джордано Бруно писал.
Потому что окемл мультипарадигменный. Хоть в указатели сри почти как в сишечке, потому ирл если и выбирается ФЯ то это либо окамл, либо скала (та же опера).
>>954284
Ты конечно удивишься, но такие ирл существуют. Если сравнивать с галерами, где текучка 50макак/неделя — то про кол-во вакансий конечно говорить не приходится, но от того они в этой реальности не исчезают.
>Ты конечно удивишься, но такие ирл существуют. Если сравнивать с галерами, где текучка 50макак/неделя — то про кол-во вакансий конечно говорить не приходится, но от того они в этой реальности не исчезают.
Сколько вакансий этих и сколько поехавших придурков, задрачивающих хацкиль? Думаю, первых раз в 999 меньше, чем вторых.
>сколько поехавших придурков, задрачивающих хацкиль
99% из них дальше написания факториала не продвинулись.
Проверил у твоей мамки за щекой @ обнаружил там свой хуй.
Я хоть слово написал про хачкель? Он даже в мире ФЯ нужен только для факториалов с красивой чистотой.
доверяй но проверяй
>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.
>>We have around 2.5 million lines of bullshit
Ок, один хипстернутый банк - это доказательство, ты победил.
Почему-то мне такой же хуй на жуйке полгода назад тыкал этим же банком, видимо, это совпадение, ведь с тех пор миллионы компаний и молодых стартапов внедрили у себя хаскелл, а не какой-нибудь там б-гомерзкий Go или другую парашу.
Хуки ты раскукарекался?
Ты написал:
>Он даже в мире ФЯ нужен только для факториалов с красивой чистотой.
Я это опроверг. Хули бесишься?
https://www.janestreet.com - Вот еще конторка, тоже используют Хаскель. Еще я находил сайт Хаскель-консультантов, сейчас лень искать. Спрос есть, хоть и очень небольшой.
почти год как являются
Ты чо-то попутал, питушок.
Та, это всё херня. Вот я тупил над ним в рамках чистой комбинаторной логики по учебнику Вольфенгагена, вот это да.
>в рамках чистой комбинаторной логики
Как по-твоему, стоит комбинаторную логику задрочить? Прибавляется ли понимание каких-то вещей?
Чистую кобмнаторную логику - нет.
А вот книгу "Комбинаторная логика в программировании" В.Э.Вольфенгагена - это может быть интересно, там типизированная комбинаторная логика погружённая в теорию категорий же. Но от неё тоже пользы особо не много, просто интересно, там самые основы про категориальную абстрактную машину и такую вот хуйню всякую.
А в целом, по теме какую литературу можешь посоветовать? В данный момент читаю Allen, Moronuki - Haskell Programming, конца и края ей не видно, бoлее 1000 страниц, лол.
Ты просто тупорылый петушок, вот я тебе что скажу. Не понимаешь одной очевидной вещи, которая прямо-таки очевидна, да.
Ты ноешь про нравоучения потому, что воспринимаешь меня, как батю.
Сыч, пошел бы ты, что ли, в футбик погонял, или на макбук заработал, а то так и останешься со своим хуяскилем кукарекать под прыщиксом.
Ебать, что ты несешь. Тебя в детстве родители не били?
Я вообще-то из центральной Европки вещаю, где уже много лет работаю погромистом. А Хаскель учу по фану. Так что ты по всем статьям обосрался.
Обколюца своим хаскилем, и ябуть друх дружку в жопы в центральноевропейской исландии.
Смотря где. В городах типа Мюнхена или Франкфурта снять проблематично, особенно если квартира хорошая и в хорошем районе. Понаеху как правило помогает фирма, в которой он работает. По ценам - зависит от потребностей, я плачу 900 за двушку. Если прибавить интернет и электричество, то как раз около штуки набегает.
Не использовать табы, очевидно же.
тред уплыл, создайте новый
Ебанутый? что значит "всех типов и тайпклассов"? Если тебе нужны вообще все - грепай хакадж или лучше гитхаб. Нет? тайпклассопедия.
всмысле их дохуя??
может ты не так понял? я ищу что-то типа:
в тайпкласс Floating входят типы Floating и Double и так для остальных
Первая картинка в гугле по запросу Haskell typeclass diagram.
Это тайпскрипт если что.
getDef это fromMaybe офк
Сука, какое же вырвиглазное говно.
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
А форматировать нормально код ты не приучаешь их?
Или это ты сам эту хуйню высрал? Ну тогда у меня для тебя плохие новости, макака - это ты.
fibs = 1 : scanl (+) 1 fibs
Не сам результат, а как происходит вычисление. Я всю голову сломал. То есть, 1 :, потом идет scanl, но он вызывает fibs, где снова идет 1:. Как это работает?
Суперговно, язык для поехавших. Пишу и плююсь, блядь. (-1), охуеть, блядь, /= пиздец, блядь.
Это копия, сохраненная 23 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.