00:00:00 Музыка 00:09:30 Начало 00:10:20 Чтение чата, настройка звука 00:18:30 Ремарка 00:20:30 Что такое ФП 00:25:50 Концепции ФП 00:28:30 Декларативность 00:36:20 Чистые функции 00:46:00 Критерии чистоты 00:51:00 Иммутабельность 01:10:30 Функции первого класса и Функции высшего порядка 01:29:00 Ответы на вопросы и общение с чатом
Тимур, спасибо тебе огромное за твой контент!! обучалась и буду обучаться по нему!!)) Тимур - большой молодец!! ТО, что он дает для обучения, как преподносит материал - бесценно!! Я думаю, что каждый, кто обучается по его роликам и курсам, понимает о чем речь))) Для меня Тимур - самый ЛУЧШИЙ онлайн преподаватель в русскоязычном ютубе!! я бы очень хотела попасть в его команду в работе)) понимаю, что это будет бесценно для меня! но пока это только мечты)))
Посмотрите курс по Вью о Климова, вот где интересно. А глубокие знания наверное у Тимура Шемсидинова. Ulbi чисто как общее понимание , у меня такое вречатление
2:15:00 код котооый можно прочитать не устареет так же быстро, как код, который быстро выполняется. Бизнес это про скорость реакции на изменение коньюктуры, а не про экономию процессорного времен
Это не отменяет того факта, что нужно знать как писать производительнее и для процессоров. И понимать, чему и когда давать приоритет. А не знать как писать производительно и приколы - быть плохим программистом. Это блин наша работа. Как быть врачом и уметь оказать первую помощь
1:38:00 не согласен, что js без фреймворка сейчас достаточно для решения твоих задач. Уровень абстракции React позволяет писать на ПОРЯДКИ быстрее системы, за счет декларирования правил модификации данных и отображения их в браузере. А так же предоставляет методы для избавления от руттинных констрккций. Которые, как раз, и декларируют что есть данные и как они они модифицируются. Без React сейчас невозможно реализовать сервисы за адекватное количество денег и времени. Говорю как разработчик одного из самых больших веб-продуктов в мире. Правила react объективно решает задачи бизнеса: понятно и одинакого, с текущеми людскими ресурсами в мире, быстро МЕНЯТЬ разные участки системы для решения задач в данную секунду. JS - это уже палочки и проволочки
Возможно, вам не не хватает личной компетенции или вы стали разработчиком не JS, а React. Я предпочитаю использовать Svelte и последний год ловлю себя на мысли, что хочу сделать его форк с «strict mode», выкинув из него вагон всего. Работа с DOM - соглашусь, в проде нужен фреймворк. Но вот всё остальное, написанное нативно будет существенно производительнее чем эти абстракции ради абстракций, да быстрее и сама разработка будет. Реакт в этом плане вообще какой-то ужас
@blackFortuna1358 я разработчик на многих языках и моих компетенций более чем достаточно что бы программировать абстракциями. И выбирать решения для сотен программистов, что бы писать продукт согласованно и в рамках конкретных задач бизнеса. Одна из таких задач: что бы программисты меньше писали кода и быстрее реализовывали новое требования бизнеса и государства
@@GoogleHaterа выпустить качественный продукт не входит в требования? Важен баланс, а не гонка за скоростью выхода на рынок. Могу сказать за свою компанию. Мы наоборот имеем преимущество перед другими, что у нас будет чуть дольше, но не тяп-ляп и погнали) Бенчмарки входят в KPI (не на уровне фанатизма).
@@blackFortuna1358я же написал, что это одна из ключевых задач, но не единственная. Мы тут обсуждаем аспект того что для js не нужны фреймворки для решения задач реальногл бизнеса.
@@GoogleHaterвот и я лично скорее согласен с Мурычом, просто не до такой степени. Фреймворк нужен, но точно не ужасный монстр реакт с абстракциями ради абстракций) Вот для меня таким стал Svelte (особенно 5-ка, которая ещё не вышла). Удобная работа с DOM и никакого навязывания чуть ли уже не другого языка. И то, я когда-нибудь в свободное время буду делать форк и добавлять возможность управления компилятором, чтобы отключать проверки ради проверок, когда я знаю, что условно там будет строка (вон она блин, через const объявлена) и не нужна проверка typeof от фреймворка. Пример так себе, но такого вагон.
> Невозможно решить какую-либо задачу в ФП Можно и решается. То, что Мурыч не изучил сабж в достаточной мере чтобы понять это, и чтобы понять, почему - не значит, что это не так. Те же Хаскель, Идрис, Агда и т.п. - чистые функциональные языки (что бы Мурыч об этом ни думал), и программисты на них каждый день решают реальные задачи, взаимодействуют с файловой системой и т.п.. Погромист на чистом ЯП в main описывает вычисления, которые должна произвести программа (включая грязные вещи вроде писания в файлы и чтения из них). Это ОПИСАНИЕ - чистое. Т.е. его можно передавать в функции, трусить туда-сюда, и ничего не произойдет. Упрощенно говоря при запуске программа вычисляет main, и затем "интерпретирует" полученную последовательность действий. Чуть менее упрощенно - программа может быть текстом (пайтон скрипт), числом (последовательность байт), лентой машины Тьюринга, лямбда-термом и т.п.. Не нужно сайд-эффектов чтобы сгенерировать программу на С, как и не нужно их для того, чтобы превратить ее в машинный код. Собственно, что тогда мешает на чистом языке описать программу, которая взаимодействует, скажем с файловой системой? Ничего. Мурыч путает программу, как описание вычислений, и сами вычисления. Последнее не имеет отношения к парадигме. Парадигмы программирования, они об описаниях вычислений (т.е. о программах), а не о том, как main запустить и интерпретировать синтаксическое дерево. Если интересно, что такое ФП - не изучайте этот вопрос по видосам тех, кто об этом где-то слышал, или не занимается постоянно. Они не расскажут. Хотя Ulbi довольно неплохо с этим справляется (пишу комментарий не досмотрев его видео до конца, так что сложно сказать наверняка).
Программа не может существовать без ввода вывода. Ввод вывод - это императивная парадигма. > Можно и решается. То, что Мурыч не изучил сабж в достаточной мере чтобы понять это, и чтобы понять, почему - не значит, что это не так. Те же Хаскель, Идрис, Агда и т.п. - чистые функциональные языки (что бы Мурыч об этом ни думал), и программисты на них каждый день решают реальные задачи, взаимодействуют с файловой системой и т.п.. Мурыч пишет в ФП с 1994 года. 34 года уже. Тот же Хаскель, отмечает код, которые выходит за рамки функционального меткой IO. То что Хаскель функциональный язык не значит, что в нем нет императивных компонентов. > Упрощенно говоря при запуске программа вычисляет main, и затем "интерпретирует" полученную последовательность действий. Она должна получить на вход данные, после чего отправить их на вывод. Ввод/вывод не может быть реализован в ФП - ПРИНЦИПИАЛЬНО Любой ФП язык - это смесь императивного и функционального кода. Смотри выше про хаскель. > Не нужно сайд-эффектов чтобы сгенерировать программу на С, как и не нужно их для того, чтобы превратить ее в машинный код. И получить сайд эффекты на любом этапе ввода вывода. Поскольку ваша программа не сможет никак его контролировать. Это лежит за пределами ее возможностей. > Собственно, что тогда мешает на чистом языке описать программу, которая взаимодействует, скажем с файловой системой? Ничего. Все мешает. Начните с того, что Вам нужно файловую систему считать в память. Для этого Вам нужно взаимодействовать с устройством. Как следствие у вас первый сайд эффект - работа устройста. >Мурыч путает программу, как описание вычислений, и сами вычисления. Последнее не имеет отношения к парадигме. Парадигмы программирования, они об описаниях вычислений (т.е. о программах), а не о том, как main запустить и интерпретировать синтаксическое дерево. Мурыч ничего не путает. Мурыч разве что не смог достаточно явно Вам показать где синтаксис языка, а где абстракция. А Вы все смешали в кучу. Думаю Вам станет много больше понятнее когда я перепишу это видео до конца. >Если интересно, что такое ФП - не изучайте этот вопрос по видосам тех, кто об этом где-то слышал, или не занимается постоянно. Они не расскажут. Хотя Ulbi довольно неплохо с этим справляется (пишу комментарий не досмотрев его видео до конца, так что сложно сказать наверняка). Мурыч пишет в ФП с 1994 года
@@AsForJS Давайте определимся с терминами, в частности, с "чистотой". Чистота отличает математические функции от джаваскриптовых функций с IO и мутабельностью. В чистом функциональном языке нет сайд эффектов. В этом мы согласны? Если да, тогда идём дальше. Хаскель - чистый функциональный язык *по определению*, и соответствует этому определению как минимум до учёта unsafePerformIO и error. Что позволяет чистым прикладным ФП языкам описывать весь спектр IO и оставаться при этом чистыми - это монады. Математический концепт, который в 91 Wadler завёз в Хаскель специально для этого. См. вайтэйпер Philip Wadler: Monads for functional programming programming. Это что-то вроде "аргумента к спецификации". В качестве альтернативы можно попробовать доказать через понятие Тьюринг-полноты: Дано: 1. Любая программа на тьюринг-полном языке может быть выражена на любом другом Тьюринг-полном языке 2. Лямбда-исчисление лишён сайд-эффектов и является тьюринг-полном языком (и математической формулой по совместительству, но не суть). Если с этим согласны, то получаем, что любую программу, написанеую на Тьюринг-полном языке (например Js) можно выразить в лямбда исчислении, и она не будет иметь сайд эффектов. Аргумент к теории вычислимости.
@@AsForJS третий аргумент: к детерминированности функций. Если мы согласны, что сайд-эффекты всегда приводят к недетерминизму - ещё проще. Нетрудно увидеть и несложно проверить, что f :: Int -> IO (); f n = print n абсолютно детерминированная функция. fmap f [0..5600] - не вызовет ни одного сайд - эффекта, даже если будет вычислено вплоть до WHNF от результата f (каким-нибудь deepSeq, например). Более того, fmap f (repeat 5) - список эквивалентных элементов (читай, f детерминирована) (подразумевается эквивалентность по Лейбницу: a = b iff forall f g. f a = g a). Ну и ещё, IO можно определить самостоятельно, и вшить в рантайм языка его интерпретатор, чтобы получить тот же результат. Например, если монада IO будет определена как data IO a where PutStrLn :: String -> IO () GetLine :: IO String Pure :: a -> IO a Bind :: (a -> IO b) -> IO a -> IO b То мы тоже сможем описывать небольшую часть программ с вводом-выводом, чисто и функционально, в виде структуры данных.
@@404Negative сложные проценты - частный случай, хелпер функция. Для задачи (f.f)x, где композиция функций коммутативна хватит и произведения: 1.5625 - скорость обозреваемого видео - как раз "чуть больше 1.5". К чему пассивно-агрессивный комментарий был про это - загадка.
57:50 Если мы при работе с массивом внутри функции, например, обращаемся к наследованному экземпляром массива методу sort, функция теряет чистоту. Соответственно, можно лишь самому изобретать велосипед сортируя массив, чтобы сохранить чистоту? Звучит бредово.
Мурыч, уважаю ваше творчество. Но я не совсем понимаю, как при вашем подходе к решению задач выйти на хотя бы минимальный уровень владения языком, при котором смело можно называть себя программистом. В идеальном мире вероятно есть возможность долгое время изучать основы языка и только потом приступать к его использованию, но сейчас же люди идут в эту сферу из-за того, что им она могла понравиться во время того, когда они смогли упростить свою жизнь при помощи кода. Приведу пример, при обучении на строительной кафедре, мне не нравилось то, что в расчетах приходилось в ручную переделывать цепочку исчислений при ручном подборе конструкции, в начале я опробовал excel, но понял что этот инструмент не даёт мне возможность делать циклы для подбора наиболее выгодного результата, а познакомившись с языком js, его базовых инструментов хватило для решения данной задачи. Я это привел затем, что нынешнему рынку, по моему мнению, не нужны только сверх программисты оптимизаторы, ему нужны люди, которые понимают бизнес область и обладая минимальными знаниями ЯП могли решить задачу за МИНИМАЛЬНЫЙ промежуток времени
Я скорее понимаю его посыл как «не считайте себя гуру программистами, когда на самом деле вы и азов не знаете». Это прям повальная проблема чудо-сеньёров за три года, которые думают, что всё знают. Путь программиста как путь самурая. Долгий, нудный и на любителя. Именно путь профессионала, а когда вы какие-то абстракции поняли - не значит, что стали сеньёром
@rsqssd не уборщик, а «Менеджер чистоты и блеска». А инфоцыгане с миллионами заработка передают привет. Профессионалы из автоспорта крестятся от того, что происходят на дорогах. Если вас взяли кому-то водителем и платят большую зарплату, не значит, что вы действительно умеете водить и чувствуете машину, даже если вы считаете иначе.
Нужно задаться вопросом - преследует ли Мурыч заработок на своем контенте? Мне кажется он кайфует от своей деятельности, что ему не интересны мнения таких как ты, не?)
Какая разница, как в том или ином языке работает обращение к методу объекта, если по итогу мы все равно имеем функцию в .text секции, которую мы и вызываем? Тогда ни в одном языке обращение к методу не сохраняет чистоту функции По моему мнению, уход веба в SPA и дальнейшая его "эволюция" в SSR - это большие ошибки, которые только зазря все усложнили
ssr - позволяет индексировать сайт, чтобы поисковики видели контент и при поиске выдавали ссылки на "самое лучшее", а так в целом все проекты разные кому то нужен ssr,а кому то нет, ни чего плохого нету в этом
00:00:00 Музыка
00:09:30 Начало
00:10:20 Чтение чата, настройка звука
00:18:30 Ремарка
00:20:30 Что такое ФП
00:25:50 Концепции ФП
00:28:30 Декларативность
00:36:20 Чистые функции
00:46:00 Критерии чистоты
00:51:00 Иммутабельность
01:10:30 Функции первого класса и Функции высшего порядка
01:29:00 Ответы на вопросы и общение с чатом
Тимур, спасибо тебе огромное за твой контент!! обучалась и буду обучаться по нему!!))
Тимур - большой молодец!! ТО, что он дает для обучения, как преподносит материал - бесценно!! Я думаю, что каждый, кто обучается по его роликам и курсам, понимает о чем речь))) Для меня Тимур - самый ЛУЧШИЙ онлайн преподаватель в русскоязычном ютубе!! я бы очень хотела попасть в его команду в работе)) понимаю, что это будет бесценно для меня! но пока это только мечты)))
Тимур - это имя Мурыча?
@@timmusharapov9257 Тимур Ульби - автор контента UlbiTV, его ролики Мурыч разбирает
Посмотрите курс по Вью о Климова, вот где интересно. А глубокие знания наверное у Тимура Шемсидинова. Ulbi чисто как общее понимание , у меня такое вречатление
51:40
PREPARE FOR DEALLOCATION
29:09 `истинная ебанина` - только на нашем славянском так можно завуалировать современное ФП
конечно, ведь ни в едином языке нет подобных конструкций. может ещё крылатых выражений у нас больше, чем у всех?
очевидно предположить то, очевидно предположить се. Воздухан, пруфай сиди по фактам. Одни абстрактные я то я сё. Женщина
Прозвучит банально, но в жизни ты бы никому так бы не сказал.Так зачем в комментариях так выражаться?)
@@astkh4381 звучит банально, но в жизни ты никому бы так не ответил. Так зачем так отвечать?
@@chikenmacnugget кончено бы ответил).Я же ничего грубого не сказал и на личность не переходил
@@astkh4381 ну вот и я бы сказал. Потому что описал его фактическое поведение.
@@chikenmacnugget ты бы не сказал)
2:15:00 код котооый можно прочитать не устареет так же быстро, как код, который быстро выполняется. Бизнес это про скорость реакции на изменение коньюктуры, а не про экономию процессорного времен
Это не отменяет того факта, что нужно знать как писать производительнее и для процессоров. И понимать, чему и когда давать приоритет.
А не знать как писать производительно и приколы - быть плохим программистом. Это блин наша работа. Как быть врачом и уметь оказать первую помощь
@@blackFortuna1358не отменяет, но читабельность в 80% случаев важнее
в конце стрима у мурыча подгорел функтор
1:38:00 не согласен, что js без фреймворка сейчас достаточно для решения твоих задач.
Уровень абстракции React позволяет писать на ПОРЯДКИ быстрее системы, за счет декларирования правил модификации данных и отображения их в браузере. А так же предоставляет методы для избавления от руттинных констрккций. Которые, как раз, и декларируют что есть данные и как они они модифицируются.
Без React сейчас невозможно реализовать сервисы за адекватное количество денег и времени.
Говорю как разработчик одного из самых больших веб-продуктов в мире.
Правила react объективно решает задачи бизнеса: понятно и одинакого, с текущеми людскими ресурсами в мире, быстро МЕНЯТЬ разные участки системы для решения задач в данную секунду.
JS - это уже палочки и проволочки
Возможно, вам не не хватает личной компетенции или вы стали разработчиком не JS, а React.
Я предпочитаю использовать Svelte и последний год ловлю себя на мысли, что хочу сделать его форк с «strict mode», выкинув из него вагон всего. Работа с DOM - соглашусь, в проде нужен фреймворк. Но вот всё остальное, написанное нативно будет существенно производительнее чем эти абстракции ради абстракций, да быстрее и сама разработка будет. Реакт в этом плане вообще какой-то ужас
@blackFortuna1358 я разработчик на многих языках и моих компетенций более чем достаточно что бы программировать абстракциями. И выбирать решения для сотен программистов, что бы писать продукт согласованно и в рамках конкретных задач бизнеса. Одна из таких задач: что бы программисты меньше писали кода и быстрее реализовывали новое требования бизнеса и государства
@@GoogleHaterа выпустить качественный продукт не входит в требования? Важен баланс, а не гонка за скоростью выхода на рынок.
Могу сказать за свою компанию. Мы наоборот имеем преимущество перед другими, что у нас будет чуть дольше, но не тяп-ляп и погнали) Бенчмарки входят в KPI (не на уровне фанатизма).
@@blackFortuna1358я же написал, что это одна из ключевых задач, но не единственная. Мы тут обсуждаем аспект того что для js не нужны фреймворки для решения задач реальногл бизнеса.
@@GoogleHaterвот и я лично скорее согласен с Мурычом, просто не до такой степени. Фреймворк нужен, но точно не ужасный монстр реакт с абстракциями ради абстракций)
Вот для меня таким стал Svelte (особенно 5-ка, которая ещё не вышла). Удобная работа с DOM и никакого навязывания чуть ли уже не другого языка.
И то, я когда-нибудь в свободное время буду делать форк и добавлять возможность управления компилятором, чтобы отключать проверки ради проверок, когда я знаю, что условно там будет строка (вон она блин, через const объявлена) и не нужна проверка typeof от фреймворка. Пример так себе, но такого вагон.
> Невозможно решить какую-либо задачу в ФП
Можно и решается. То, что Мурыч не изучил сабж в достаточной мере чтобы понять это, и чтобы понять, почему - не значит, что это не так.
Те же Хаскель, Идрис, Агда и т.п. - чистые функциональные языки (что бы Мурыч об этом ни думал), и программисты на них каждый день решают реальные задачи, взаимодействуют с файловой системой и т.п..
Погромист на чистом ЯП в main описывает вычисления, которые должна произвести программа (включая грязные вещи вроде писания в файлы и чтения из них). Это ОПИСАНИЕ - чистое. Т.е. его можно передавать в функции, трусить туда-сюда, и ничего не произойдет.
Упрощенно говоря при запуске программа вычисляет main, и затем "интерпретирует" полученную последовательность действий.
Чуть менее упрощенно - программа может быть текстом (пайтон скрипт), числом (последовательность байт), лентой машины Тьюринга, лямбда-термом и т.п..
Не нужно сайд-эффектов чтобы сгенерировать программу на С, как и не нужно их для того, чтобы превратить ее в машинный код.
Собственно, что тогда мешает на чистом языке описать программу, которая взаимодействует, скажем с файловой системой? Ничего.
Мурыч путает программу, как описание вычислений, и сами вычисления. Последнее не имеет отношения к парадигме. Парадигмы программирования, они об описаниях вычислений (т.е. о программах), а не о том, как main запустить и интерпретировать синтаксическое дерево.
Если интересно, что такое ФП - не изучайте этот вопрос по видосам тех, кто об этом где-то слышал, или не занимается постоянно. Они не расскажут.
Хотя Ulbi довольно неплохо с этим справляется (пишу комментарий не досмотрев его видео до конца, так что сложно сказать наверняка).
Программа не может существовать без ввода вывода.
Ввод вывод - это императивная парадигма.
> Можно и решается. То, что Мурыч не изучил сабж в достаточной мере чтобы понять это, и чтобы понять, почему - не значит, что это не так.
Те же Хаскель, Идрис, Агда и т.п. - чистые функциональные языки (что бы Мурыч об этом ни думал), и программисты на них каждый день решают реальные задачи, взаимодействуют с файловой системой и т.п..
Мурыч пишет в ФП с 1994 года. 34 года уже.
Тот же Хаскель, отмечает код, которые выходит за рамки функционального меткой IO. То что Хаскель функциональный язык не значит, что в нем нет императивных компонентов.
> Упрощенно говоря при запуске программа вычисляет main, и затем "интерпретирует" полученную последовательность действий.
Она должна получить на вход данные, после чего отправить их на вывод. Ввод/вывод не может быть реализован в ФП - ПРИНЦИПИАЛЬНО
Любой ФП язык - это смесь императивного и функционального кода. Смотри выше про хаскель.
> Не нужно сайд-эффектов чтобы сгенерировать программу на С, как и не нужно их для того, чтобы превратить ее в машинный код.
И получить сайд эффекты на любом этапе ввода вывода. Поскольку ваша программа не сможет никак его контролировать. Это лежит за пределами ее возможностей.
> Собственно, что тогда мешает на чистом языке описать программу, которая взаимодействует, скажем с файловой системой? Ничего.
Все мешает. Начните с того, что Вам нужно файловую систему считать в память. Для этого Вам нужно взаимодействовать с устройством. Как следствие у вас первый сайд эффект - работа устройста.
>Мурыч путает программу, как описание вычислений, и сами вычисления. Последнее не имеет отношения к парадигме. Парадигмы программирования, они об описаниях вычислений (т.е. о программах), а не о том, как main запустить и интерпретировать синтаксическое дерево.
Мурыч ничего не путает. Мурыч разве что не смог достаточно явно Вам показать где синтаксис языка, а где абстракция. А Вы все смешали в кучу.
Думаю Вам станет много больше понятнее когда я перепишу это видео до конца.
>Если интересно, что такое ФП - не изучайте этот вопрос по видосам тех, кто об этом где-то слышал, или не занимается постоянно. Они не расскажут.
Хотя Ulbi довольно неплохо с этим справляется (пишу комментарий не досмотрев его видео до конца, так что сложно сказать наверняка).
Мурыч пишет в ФП с 1994 года
@@AsForJS Давайте определимся с терминами, в частности, с "чистотой". Чистота отличает математические функции от джаваскриптовых функций с IO и мутабельностью.
В чистом функциональном языке нет сайд эффектов. В этом мы согласны?
Если да, тогда идём дальше. Хаскель - чистый функциональный язык *по определению*, и соответствует этому определению как минимум до учёта unsafePerformIO и error.
Что позволяет чистым прикладным ФП языкам описывать весь спектр IO и оставаться при этом чистыми - это монады.
Математический концепт, который в 91 Wadler завёз в Хаскель специально для этого. См. вайтэйпер Philip Wadler: Monads for functional programming programming.
Это что-то вроде "аргумента к спецификации".
В качестве альтернативы можно попробовать доказать через понятие Тьюринг-полноты:
Дано:
1. Любая программа на тьюринг-полном языке может быть выражена на любом другом Тьюринг-полном языке
2. Лямбда-исчисление лишён сайд-эффектов и является тьюринг-полном языком (и математической формулой по совместительству, но не суть).
Если с этим согласны, то получаем, что любую программу, написанеую на Тьюринг-полном языке (например Js) можно выразить в лямбда исчислении, и она не будет иметь сайд эффектов.
Аргумент к теории вычислимости.
@@AsForJS третий аргумент: к детерминированности функций.
Если мы согласны, что сайд-эффекты всегда приводят к недетерминизму - ещё проще.
Нетрудно увидеть и несложно проверить, что
f :: Int -> IO (); f n = print n
абсолютно детерминированная функция.
fmap f [0..5600] - не вызовет ни одного сайд - эффекта, даже если будет вычислено вплоть до WHNF от результата f (каким-нибудь deepSeq, например).
Более того, fmap f (repeat 5) - список эквивалентных элементов (читай, f детерминирована) (подразумевается эквивалентность по Лейбницу: a = b iff forall f g. f a = g a).
Ну и ещё, IO можно определить самостоятельно, и вшить в рантайм языка его интерпретатор, чтобы получить тот же результат.
Например, если монада IO будет определена как
data IO a where
PutStrLn :: String -> IO ()
GetLine :: IO String
Pure :: a -> IO a
Bind :: (a -> IO b) -> IO a -> IO b
То мы тоже сможем описывать небольшую часть программ с вводом-выводом, чисто и функционально, в виде структуры данных.
Автор смотрит на 1.25, я смотрю автора на 1.25
получается чуть-чуть больше чем 1.5
@@nepcz сложные проценты - нет не слышал
@@404Negative сложные проценты - частный случай, хелпер функция. Для задачи (f.f)x, где композиция функций коммутативна хватит и произведения: 1.5625 - скорость обозреваемого видео - как раз "чуть больше 1.5". К чему пассивно-агрессивный комментарий был про это - загадка.
57:50 Если мы при работе с массивом внутри функции, например, обращаемся к наследованному экземпляром массива методу sort, функция теряет чистоту. Соответственно, можно лишь самому изобретать велосипед сортируя массив, чтобы сохранить чистоту? Звучит бредово.
Ура, новый видос от Мурыча!!! Жду их с таким же нетерпением, как раньше ждал новых серий игры престолов)
Лучшее завершение стрима
Спасибо, интересный разбор.
Раньше читал статьи Криса Касперски. Мурыч такой же исследователь.
Олдфаги не помнят , ньюфаги не знают 🤫
Мурыч - легенда
"JS - язык для детского сада" жаль дока JS не для детского сада)
Почему для детского сада?
@@astkh4381 цитата мурыча
СПАСИБО БОЛЬШОЕ ЗА ЭТОТ БЕСЦЕННЫЙ КОНТЕНТ. ЖЕЛАЮ ВСЕГО НАИЛУЧШЕГО ❤❤❤
Мурыч, уважаю ваше творчество. Но я не совсем понимаю, как при вашем подходе к решению задач выйти на хотя бы минимальный уровень владения языком, при котором смело можно называть себя программистом. В идеальном мире вероятно есть возможность долгое время изучать основы языка и только потом приступать к его использованию, но сейчас же люди идут в эту сферу из-за того, что им она могла понравиться во время того, когда они смогли упростить свою жизнь при помощи кода. Приведу пример, при обучении на строительной кафедре, мне не нравилось то, что в расчетах приходилось в ручную переделывать цепочку исчислений при ручном подборе конструкции, в начале я опробовал excel, но понял что этот инструмент не даёт мне возможность делать циклы для подбора наиболее выгодного результата, а познакомившись с языком js, его базовых инструментов хватило для решения данной задачи. Я это привел затем, что нынешнему рынку, по моему мнению, не нужны только сверх программисты оптимизаторы, ему нужны люди, которые понимают бизнес область и обладая минимальными знаниями ЯП могли решить задачу за МИНИМАЛЬНЫЙ промежуток времени
Я скорее понимаю его посыл как «не считайте себя гуру программистами, когда на самом деле вы и азов не знаете». Это прям повальная проблема чудо-сеньёров за три года, которые думают, что всё знают.
Путь программиста как путь самурая. Долгий, нудный и на любителя. Именно путь профессионала, а когда вы какие-то абстракции поняли - не значит, что стали сеньёром
Есть академия. А есть работа. Как врач практик и врач педагог.
@@blackFortuna1358Если тебя взяли как сеньёра и платят как сеньёра, то ты сеньёр
@rsqssd не уборщик, а «Менеджер чистоты и блеска». А инфоцыгане с миллионами заработка передают привет. Профессионалы из автоспорта крестятся от того, что происходят на дорогах.
Если вас взяли кому-то водителем и платят большую зарплату, не значит, что вы действительно умеете водить и чувствуете машину, даже если вы считаете иначе.
@@blackFortuna1358 у меня тут коммент оставленный?
great video
Вау, дуже сподівався, що у вас зʼявиться огляд на це відео, ввечері подивлюсь 🔥
Пока Мурыч обкладывает улби половыми органами, второй на своём курсе сделал пару лямов $. Вопрос теперь. Кто получается умнее?
Он просто предприимчивее, а не умнее.
пару триллионов евро
Нужно задаться вопросом - преследует ли Мурыч заработок на своем контенте? Мне кажется он кайфует от своей деятельности, что ему не интересны мнения таких как ты, не?)
В данном видео, если ты его не смотрел, Мурыч на удивление никого половыми органами особо не обкладывает
Пару лямов вряд ли он сделал, но пару копеек поднял
За to object отдельное спасибо!
Привет! Какие книги можешь посоветовать по ФП?
Он не разбирается в ФП. Спроси в сообществе функциональщиков.
@@АнимусАнанимус это какое? Тг каналов не нашёл конкретно по фп
Вопрос на миллион долларов, язык go для создания сайтов тупик или для Бэка с VUE лучше PHP?
да, гони миллион
Отвечу так, скорее всего придётся знать и пыху и го, чтобы быть хорошим программистом
@@michaelmyers717 ну если ты знаешь пыху го и фронт то ты вообще говно программист.
Это как если твой хирург еще и сантехник и водитель автобуса.
@@WERWOLION нет, ты просто ещё никогда не работал и вкатун
@@michaelmyers717 т.е. ты идеально знаешь 10 языков программирования и рисуешь лучший дизайн
Почему заставка всего 10 минут? И про кота мало. 🙂
Какая разница, как в том или ином языке работает обращение к методу объекта, если по итогу мы все равно имеем функцию в .text секции, которую мы и вызываем? Тогда ни в одном языке обращение к методу не сохраняет чистоту функции
По моему мнению, уход веба в SPA и дальнейшая его "эволюция" в SSR - это большие ошибки, которые только зазря все усложнили
ssr - позволяет индексировать сайт, чтобы поисковики видели контент и при поиске выдавали ссылки на "самое лучшее", а так в целом все проекты разные кому то нужен ssr,а кому то нет, ни чего плохого нету в этом
@@_tervizator3071 SSR это реузльтат того, что перешли на SPA, который не индексируется. До SPA все было нормально
хотелось бы поменьше цензуры)
Я для фп в жсе делал kirka
Начало 9:30
1:08:09 В ФП нет шага "сделай копию" но в JS это приходится делать
В ФП нет "шага".
Дякую Вам за Ваш контент. Жаль що більше немає українською, але дякую що хоча б спробували!
А есть ссылка на дискуссия Дядюшки Боба, упомянутую в видео?
У Winderton-а был обзор, там много ссылок будет где почитать
Не несите чушь. Посмотрите на его рубаху 😮. Если у вас остались сомнения, удачи. 😅
Нужно оперировать не к личности, а к тезисам
Посмотрите на его рубаху)) аргумент уровня я даже не знаю кого… это дно полное
смотріте-смотріте, типичній русачок порвался! :)
А что с рубахой? Хорошая рубаха.
@@1tsv1kt0r тааак)), а разделение на типы "русачков" у вас имеется?