Функциональное программирование в мире JavaScript

Поделиться
HTML-код
  • Опубликовано: 21 апр 2020
  • Разбираемся, что такое композиция, частичное применение, каррирование, чистые функции, мемоизация и неизменяемые (иммутабельные) данные.

Комментарии • 174

  • @user-sm6id3ss8q
    @user-sm6id3ss8q 4 года назад +249

    Отличная подача, прям Дроздов - "В мире функционального программирования"

    • @jojomajo
      @jojomajo 3 года назад +2

      ору) спс)

    • @maksimzolotoi3379
      @maksimzolotoi3379 3 года назад +1

      Тоже подумал что чисто дроздов 👍🏾😁

    • @hamzarylan7895
      @hamzarylan7895 2 года назад

      I dont mean to be so off topic but does someone know of a method to get back into an Instagram account??
      I was dumb forgot the password. I would love any assistance you can offer me

    • @jonathangraham689
      @jonathangraham689 2 года назад

      @Hamza Rylan instablaster :)

    • @hamzarylan7895
      @hamzarylan7895 2 года назад

      @Jonathan Graham I really appreciate your reply. I found the site thru google and im waiting for the hacking stuff now.
      Seems to take quite some time so I will reply here later with my results.

  • @maksimsergeevich5939
    @maksimsergeevich5939 4 года назад +62

    С этим челом нельзя курить, а то залипнешь до старости)))

  • @granmini
    @granmini 4 года назад +64

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

  • @dmitriymedvedev70
    @dmitriymedvedev70 3 года назад +6

    Лекция супер! Такого лектора ещё не встречал! Спасибо!

  • @TheBakdag
    @TheBakdag 2 года назад +8

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

  • @liz2k
    @liz2k Год назад

    Я с большим удовольствием посмотрел (премьеру несколько недель назад) и блин насколько все доступно и интересно рассказано. А самое главное понятно!
    Прям плюсую!

  • @AlexanderBukhtatyy
    @AlexanderBukhtatyy 4 года назад +4

    Спасибо за доклад!

  • @slimnino
    @slimnino 4 года назад +24

    лектор от бога!!! вся лекция на одном дыхании!!! супер!!! спасибо!!!

  • @kookaburru
    @kookaburru 2 года назад +1

    Материал грамотный, без воды и хотя все это я уже знал, но всеравно удовольствием посмотрел :)

  • @user-ey9gs2xk2e
    @user-ey9gs2xk2e 3 года назад

    Спасибо!) Очень круто!

  • @artemsites
    @artemsites 4 месяца назад

    Спасибо за лекцию!!!

  • @user-ck8xo8pe9e
    @user-ck8xo8pe9e 3 года назад +1

    Чувак бомба, красавчик, все доходчиво, смотришь лекцию как кино :)

  • @dimovich85
    @dimovich85 3 года назад

    Супер круто! Спасибо!

  • @AlexeyNeklesa
    @AlexeyNeklesa 4 года назад +12

    Просто шикарный спикер ) Очень классный доклад!

  • @ancoopa
    @ancoopa 4 года назад +10

    Офигенный докладчик. Спасибо. :)

  • @onlytryhard80
    @onlytryhard80 Год назад

    Велеколепный доклад

  • @yourbadapple
    @yourbadapple 3 года назад

    было полезно, очень круто объяснил, респект

  • @VYuhim
    @VYuhim 4 года назад +19

    Это было ахеренно! Аплодировал, когда он сказал: "Эпизод первый. Композиция" =)

  • @AbasovIT
    @AbasovIT Год назад

    Отличное выступление

  • @user-kd6mq4xf6f
    @user-kd6mq4xf6f 3 года назад +3

    Дуже цікаво слухати, я в захваті.

  • @dielectric7265
    @dielectric7265 4 года назад +8

    10/10 отличная подача материала)

  • @orucqarayev4759
    @orucqarayev4759 Год назад

    Блин. какой классный диктор) какая страсть)

  • @user-fo4jm9tw9r
    @user-fo4jm9tw9r 3 года назад +2

    16:20 "Сейчас я выпью водички, потому что дальше будет интересно." ))))

  • @swave2720
    @swave2720 Год назад

    Лайк за параметры и аргументы. сейм шит)

  • @phat80
    @phat80 3 года назад +14

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

    • @Iaxls
      @Iaxls 2 года назад +3

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

    • @user-sq7jx8ch6t
      @user-sq7jx8ch6t 2 года назад +3

      @@Iaxls слишком декларативно, только машинные коды, они ближе к работе железа

    • @theban2517
      @theban2517 2 года назад +1

      Если обобщить все статьи по фп, которые я читал, то вывод такой: фп это не про понятность и не про удобство. Фп это просто ряд жестких требований, которые (по идее) должны увеличить эффективность работы программы. За счет чистых функций и декларативного подхода мы получаем не понятность, а возможность их вызова в любом порядке и, как следствие, распараллеливание.

    • @shalidor1619
      @shalidor1619 Год назад +1

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

  • @feschenkoalex754
    @feschenkoalex754 4 года назад +3

    Классный лектор. Продуманно подошел к делу. Лайк

  • @phat80
    @phat80 3 года назад +8

    Композэ - это пять! )))))

  • @vladislavsnijko1669
    @vladislavsnijko1669 4 года назад +18

    он такой сказочный.. )))
    И коалы грустят.. и код сложно отлаживать...

  • @kirillpavlovskii8342
    @kirillpavlovskii8342 4 года назад +2

    славный парень)) берем функцию кампазе))))

  • @ryskin82
    @ryskin82 3 года назад +3

    Когда лекция о программировании превращается в философию не теряя контекста.

  • @user-cl3wb7zs6f
    @user-cl3wb7zs6f 3 года назад +5

    "Пойти пораньше домой, и любоваться на звёзды!" - Хорошо сказано!

  • @user-ps2ge3cc5r
    @user-ps2ge3cc5r 4 года назад +4

    Здравствуйте всем, где можно найти слайды ?

  • @pavell53
    @pavell53 4 года назад +4

    ссылки бы еще из лекции прикрепили.

  • @alexkol6814
    @alexkol6814 3 года назад +2

    Супер. 661 лайк уже. Еще 5 лайков и сам Сатана будет смотреть ету лекцию!

    • @myrichstory
      @myrichstory 3 года назад

      я 665-й поставил. Кто следующий?))

  • @alexleshenko
    @alexleshenko 4 года назад +4

    О это то что надо пробежать)! Спасиб)

  • @4932
    @4932 3 года назад

    Дядюшка Ау)

  • @user-kn6vr7el8y
    @user-kn6vr7el8y 3 года назад

    Лектор просто супер!)

  • @A_A_A182
    @A_A_A182 Год назад

    Тяги бархатные)

  • @rusmemes
    @rusmemes 3 года назад +1

    это какая-то реинкаранация Дроздова??

  • @user-mr8qm3tw5p
    @user-mr8qm3tw5p 4 года назад +3

    Хорошая подготовка. Мне бы столько текста наизусть не выучить.

  • @kurasaored2775
    @kurasaored2775 4 года назад +5

    Функция композе, мсье, ору 😂 В целом интересно

  • @sergiy0641
    @sergiy0641 3 года назад +5

    Не понял, сначала сказал, что код должен быть понятным, а потом начал объяснять всякие извращения/костыли про каррирование и пр., что только усложняет написание и понимание.

    • @Iaxls
      @Iaxls 2 года назад +1

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

  • @kriskaruzo1398
    @kriskaruzo1398 4 года назад

    я так понял будет продолжение

  • @me2beats313
    @me2beats313 4 года назад +5

    очень грамотная речь, единственный момент - английский бы получить:)
    но в любом случае выдающийся лектор!

  • @alexdang2357
    @alexdang2357 3 года назад

    лучший!

  • @ruslanm.1120
    @ruslanm.1120 3 месяца назад

    Подскажите где ссылка на презентацию?

  • @martovskyy
    @martovskyy 3 года назад

    Сказочная атмосфера)

  • @warcraft.mp4889
    @warcraft.mp4889 2 года назад +1

    Не знал что галат на jse пишет

  • @uM9nOJIb3OBATEJI9
    @uM9nOJIb3OBATEJI9 4 года назад +20

    Галат обучает ФП на JS. Смотреть без регистрации и смс.

  • @pantafive
    @pantafive 3 года назад

    Спикер - боженька!

  • @user-zp9iq1po5o
    @user-zp9iq1po5o 2 года назад

    Рассказано о ФП в декларативном стиле - увеличивая скорость воспроизведения массив данных не теряет длину...

  • @vladimir2289
    @vladimir2289 3 года назад

    Лектор топ!

  • @vitaliytikhonov3168
    @vitaliytikhonov3168 3 года назад +2

    "мы берём функцию композЭ"))))

  • @user-zh5fx1zh5c
    @user-zh5fx1zh5c 2 года назад

    падает падает падает снег, снег летает, снег кружится

  • @ruslanm.1120
    @ruslanm.1120 3 месяца назад

    (...Продолжение следует) 😊

  • @nikitaosadchuk1467
    @nikitaosadchuk1467 3 года назад

    компазЭ)

  • @user-hs4ci1oz3n
    @user-hs4ci1oz3n 4 года назад

    vjlink уже программист

  • @beyond6596
    @beyond6596 3 года назад +1

    Про бабашку и порше было очень эпично)))

  • @Gans_Kitchen
    @Gans_Kitchen 4 года назад +1

    Смотреть на скорости 1.25!!!

    • @phat80
      @phat80 3 года назад +1

      1,5 минимум!

    • @sense3247
      @sense3247 3 года назад +1

      я смотрел на скорости 2.0

  • @oleg_andrianov
    @oleg_andrianov 2 года назад +1

    Очень круто. Но ничего не понятно.

  • @nickpravda3249
    @nickpravda3249 3 года назад

    Функции это кубики лего из которых мы конструируем легаси

  • @MrElchenkov
    @MrElchenkov 4 года назад +3

    Как зовут этого чувака?) это просто лучший it спикер в мире)

  • @valentynratov7104
    @valentynratov7104 3 года назад

    Подскажите, как зовут лектора? Есть ли у него еще видео?

  • @Mathemat1cs-1
    @Mathemat1cs-1 3 года назад

    а вот мой друг говорит что программирование без матем возможно )) эх жалко мне его

  • @phat80
    @phat80 3 года назад

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

  • @kotyarix
    @kotyarix 9 месяцев назад

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

  • @palyanytsia
    @palyanytsia 5 месяцев назад

    композэ, кьюайкью

  • @lamer7905
    @lamer7905 3 года назад +4

    Почему он так смешно говорит? Шабанул чтоли

  • @user-sq3nn5wq3z
    @user-sq3nn5wq3z 4 года назад +3

    20 лет жил, 20 лет не верил в любовь а тут...

  • @pnlabs
    @pnlabs 2 года назад

    Чёрт, у меня табак и уголь закончились, надо пойти купить, иначе слушать невозможно :)

  • @BlindPewRus
    @BlindPewRus 2 года назад +1

    Похоже я тут один не в восторге от подачи.

  • @mikhaildevichensky6407
    @mikhaildevichensky6407 3 года назад

    Хочу к нему в падаваны

  • @user-pw4bh3ll5z
    @user-pw4bh3ll5z Год назад +1

    так в почему не написал функцию curry как она выглядит-то? смысл тогда от этой болтовни

    • @user-pw4bh3ll5z
      @user-pw4bh3ll5z Год назад

      function curry(func) {
      return function curried(...args) {
      if (args.length >= func.length) {
      return func.apply(this, args);
      } else {
      return function(...args2) {
      return curried.apply(this, args.concat(args2));
      }
      }
      };
      } вот это говно

  • @AquaDiskoteque
    @AquaDiskoteque 3 года назад +1

    45:37 ({a, b, ...rest} = {a:1, b:2, c:3, d:4}); это деструктуризация объекта. А он spread показывает и делает иммутабильную копию, однако деструктуризация это вытягивания из объектов, функций и создания поля переменных или MDN YDKJS и Фелиган врёт?

  • @radislaw
    @radislaw 3 года назад +1

    Вернуть сразу булево выражение - НЕЕЕТ. Использовать тернарник, чтобы вернуть true или false - ДААА

  • @ElenaElena-st1mg
    @ElenaElena-st1mg 4 месяца назад

    зачем учить функциональное программирование , работают же на другом виде?

  • @sashasagan2510
    @sashasagan2510 4 года назад +4

    А что за умные ребята придумали лямбда-исчисление? Всегда думал что её Алонзо Чёрч разработал.

    • @rustonelove
      @rustonelove 4 года назад +1

      У тебя проблемы с методичкой - чини. Придумали имеет контекст "сейчас", т.е. говорится о теории в её текущем состоянии и тех, кто её до этого состояния продвинул.
      Так же, о лямбда-исчислениях говорится именно в контексте данной области. Тот, кто их придумал и развивал в рамках другой области мало кого волнует.

  • @whiteguards43
    @whiteguards43 2 года назад +1

    Болтун! Какие то сравнения приводит с внешним миром, вместо 5 минут, на 50 минут продлил

  • @graezzywormz1438
    @graezzywormz1438 3 года назад +3

    Блядь а в Яндексе все такие душные? Куча ненужной воды. Программисты котики, смотреть на звёзды? Это на кого направлено? На маленьких девочек?

  • @user-gf9qe9im7r
    @user-gf9qe9im7r 2 года назад +1

    Какое-то днище честно говоря. Очень много воды, минимум конкретики, тупые приколы не по делу. Автор хотел сделать интересно и в принципе получилось интересно, но это не про программирование, это видео получилось про тупые шутки, про отвлеченные темы

  • @rustonelove
    @rustonelove 4 года назад +4

    Кстати, ещё кое что важное. Сектант начала рассказывать про каринг/частичное применение. Правда он не рассказал зачем и почему, но это норма для сектантов. А важное тут то, что вся эта теория прорабатывалась ещё до привычных в скриптухе лямбд. arg => f(arg, const); - написать быстрее и проще, чем пердолинг с базовой методичкой. Здесь можно рассказать о "а если у меня много аргументов - все перечислять?" - нет.
    Потому как базовая методичка на самом деле ни о чего не спасает(на самом деле то, о чём говорит сектант протухло лет на 30. И там уже давно пытаются закостылить решения, но сейчас я не об этом). Причина проста - методичка позволяет либо добавлять аргументы к функции последовательно. Я не могу передать средний аргумент. Там, конечно же, сектанты сразу начнут орать "Да твоё api говно", но это лишь попытка снять с себя ответственность.
    Все эти показанные вам фокусы - работают только потому, что заранее созданы под методичку. Созданы такими, что-бы работать. В реальности же это работать не будет и не работает. За примерами можно сходить в любой код сектантов. Там будет либо прикрученные аргументы через объект, либо через лямбду.

    • @user-dn7qr7vs1h
      @user-dn7qr7vs1h 4 года назад +10

      От тебя возлюбленная ушла к ФП-шнику? Откуда такая озабоченность функциональщиной?😅
      Больше года назад видел твои простыни ругательств под другими видео про ФП.
      Ну точно что-то личное 😂

    • @rustonelove
      @rustonelove 4 года назад +1

      ​@@user-dn7qr7vs1h Кто вообще может уйти к подобным опущенцам? Я в окно выйду, если даже такая вероятность появится.
      >Откуда такая озабоченность функциональщиной?
      Чини методичку. Озабоченность есть у убогих - засирать эфир своими бездарными потугами. Ну и так уж получилось, что эфир общий. Это не моя вина, а их. Сами убогие меня не заботят - меня заботит то, что они каким-то образом вылезли из своих помоек туда, где их вижу я. И то, что они пытаются нападать на детей, которые по-сути беззащитны.
      К тому же, причём тут ФП? Я не разделяю сорта поехавших. И для меня первично то, что сектант врёт, а уже как и о чём конкретное и какой секты он является адептов - это уже после.
      В любом случае - хочешь со мною поспорить - пытайся. Не можешь? Зачем приходишь со своей нелепой шаблонной хернёй? Она не работала и работать не будет.

    • @AquaDiskoteque
      @AquaDiskoteque 3 года назад

      Я если честно тоже из доклада яндексойда нихуя не понял. Так, а если в js фун-ии это спец объекты с внутренними методами тогда о какой чистой Фп говорим, я тоже нихуя не понял.

    • @redhook777
      @redhook777 Год назад +1

      @@AquaDiskoteque а какая разница что под капотом? В js все объекты(кроме примитивов). Это не отменяет функциональных возможностей js

    • @AquaDiskoteque
      @AquaDiskoteque Год назад

      @@redhook777 или всё примитивы, кроме объектов. ебашьте в хаскель и будет вам счастье

  • @rustonelove
    @rustonelove 4 года назад +6

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

    • @alexpipin3693
      @alexpipin3693 4 года назад

      чувак ты ноунейм который говорит всем, что земля плоская, хотя уже все доказали и объехали землю 10 раз, если ты действительно настолько умен, так докажи делом, если нет, ты обычный забитый тролль

  • @rustonelove
    @rustonelove 4 года назад +3

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

    • @Renton1428
      @Renton1428 4 года назад +10

      Из вас двоих на сектанта здесь больше похоже вы

    • @rustonelove
      @rustonelove 4 года назад

      @@Renton1428 Обосновывай потуги.

    • @maksimka07031997
      @maksimka07031997 4 года назад +4

      @@rustonelove подача твоих комментариев за тебя говорит. Вместо того, чтобы адекватно расписать, где автор неправ, ты агрессивно критикуешь, как типичный ПГМ, когда кто-то говорит, что бога нет.

    • @rustonelove
      @rustonelove 4 года назад

      ​@@maksimka07031997 Меня не интересуют потуги опущенных сектантов. К тому же, именно это можно применить к тебе, ведь именно ты и автор ПГМнутый сектант. Потому как это базовая защита сектантов "ты меня обижаешь, окорбляешь, а не критикуешь". Никакой ПГМ замечен в агрессивной критике не был. Как раз таки всё наоборот. Агрессивно критикуют ПГМ.
      К тому же я адекватно написал где автор не прав. А далее прибежал дошколёнок, который ничего не смог на мою критику ответить и начал ретранслировать дефолтную херню "да ты не прав, потому не прав", "да ты не прав, потому что такой" и прочее.
      Заметим, что отличии от этого убого я называю сектантов сектантами, но при этом я объясняю и доказываю почему это так. Данное убожество прибежало, назвало меня сектантом и всё. Т.е. оно сделало то в чём меня обвинило, но при этом я сам указанного в обвинение не делал и сектант не смог этого продемонстрировать. И самое важное - сектант даже в своих потугах запутался.

    • @maksimka07031997
      @maksimka07031997 4 года назад +3

      @@rustonelove хорошо, как скажешь. Но по количеству комментариев и их объему не похоже, что тебе все равно, что "сектанты" скажут. Брехливого пса не перелаешь, я и не буду пытаться.

  • @rustonelove
    @rustonelove 4 года назад +3

    46:00 - вот она, вся сила пропаганды. "немножно упадёт". Во-первых начнём с того, что если в вашей программе есть ФП - производительности там нету в принципе. Во-вторых сектант сам себе противоречит. Если упадёт "немножно" - зачем заморачиваться и делать специальные либы? Ой. оказывается множно и пропагандист попытался всех обмануть? Ну это уже норма.
    И самое интересное. Сектант рассказывает про преимущества иммутабельности показывая мутабельные либы, которые лишь дают маня-иммутабельный интерфейс.
    И теперь угадайте - что будет, если мы попытаемся расспаралеллить код использующий эту либу? Ой, у нас появляется глобальное состояние, которое постоянно мутируется.

    • @daedaliusX
      @daedaliusX 4 года назад

      Что думаешь о www.npmjs.com/package/object-path-immutable ?
      На проекте мы его успешно применяли с Redux как компромисс между иммутабельностью и использованием библиотек вроде ImmutableJs.
      > что будет, если мы попытаемся расспаралеллить код использующий эту либу?
      Можно пример для реалий JS?

    • @AbraKadabra000
      @AbraKadabra000 4 года назад

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

  • @rustonelove
    @rustonelove 4 года назад +2

    Композиция не имеет никакого отношения к ФП. Действительно в математике была "линейная" обратная запись, но никакой практико-применительной теории за ней не стояло и чейнинг в том же хаскеле не является наследием той записи.
    Вся теория была проработана в юниксе, ооп и прочем. В первом пайпы, а во втором чейнинг. Причём и то куда более состоятельная концепция, потому как позволяет не только выход объединять со входом, но и конфигурировать каждую стадию дополнительно.
    У сектантов есть попытки решить эти проблемы через частичное применение/каринг. Но в любом случае это костыли прикрученные сверху после того, как натягивание базовой концепции провалилось.
    Само частичное применение и каринг во многом противоречат базовой фп-методичке и являются просто альтернативными сектантскими названиями того, что было везде и всюду.
    Единственное, что там во многом путает людей - это именно скриптушная природа ФП. Поэтому когда сравнивается ФП и императивщина - нужно сравнивать одно и другое. А люди в основном склонны сравнивать скриптуху и статические языки. Так делать ненужно.

    • @alexanderkartavtsev8865
      @alexanderkartavtsev8865 4 года назад

      надеюсь, ты доволен собой?

    • @daedaliusX
      @daedaliusX 4 года назад +2

      @@alexanderkartavtsev8865 А вы собой довольны? К чему вопрос?
      Предлагаю вести конструктивный диалог. Twinkle где-то нас обманывает, не договаривает?

    • @alexanderkartavtsev8865
      @alexanderkartavtsev8865 4 года назад +5

      @@daedaliusX конструктивный диалог с человеком, который использует слова "опущенный", "поехавшие", "завывания сектантов"? Позвольте отказаться от такого диалога

  • @danzankekshaev5742
    @danzankekshaev5742 3 года назад +1

    Я прекратил просмотр, когда он сказал "берем функцию композе..." 20:35

    • @danzankekshaev5742
      @danzankekshaev5742 3 года назад +1

      как человек может работать в яндексе и говорить КОМПОЗЕ!

    • @MaxLimas
      @MaxLimas 3 года назад +4

      @@danzankekshaev5742 От этого человек становится менее программист? Или может методы перестают работать? Пофиг кто как называет, ибо всё равно ясно о чём речь.

    • @danzankekshaev5742
      @danzankekshaev5742 3 года назад

      @@MaxLimas это показатель его общего образования, английский язык имеет огромное значение для программиста, сегодня он говорит кампазе, а завтра не так прочтёт документацию

    • @Chpokman41
      @Chpokman41 3 года назад +1

      @@danzankekshaev5742 как "композе" показал тебе "показатель общего образования"?

    • @phat80
      @phat80 3 года назад

      @@Chpokman41 я тут не занимаю чью-то сторону, так не знаю, может чел хорошо знает немецкий или испанский, но знание хотя бы одного иностранного языка это показатель образованности все-таки. Если человек считает себя образованным, то иностранный язык неплохо бы знать, хотя бы один и хотя бы на базовом уровне. Ну не может просто такого быть, что у него в школе или институте не было иняза, особенно учитывая его возраст. Для меня всегда странно видеть в современном мире человека, который не знает никакого языка кроме родного. Ведь программа любого учебного заведения включает иняз, что было стандартом еще при СССР.

  • @rustonelove
    @rustonelove 4 года назад +2

    40:00 - опять можно заметить шизофрению сектанта. Лозунги вида "это плохо потому что плохо". Какое отношение глобальные переменные имеют к сайд-эффектам я не знаю. Да и сектант сам не знает. Он взял это из базовой методичке, но ему не рассказали, что он сел в лужу. Потому как современная фп-методичка не считает глобальные переменные за сайд-эффекты.
    Причина проста и сектант опять сел в лужу. Да, в первых методичках были параметры и аргументы, но потом сектанты поняли, что это слишком говно и нужно внешнее состояние. И оно уже было в скриптухе - замыкания. Т.е. захват внешних переменных в тело локальной функции. Захват глобалов был всегда. И по-сути глобальные переменные и являются теми самыми замыканиями.
    Таким образом внешнее состояние является легитимным, если оно иммутабельно. На самом деле сектанты и здесь селе в лужу. Иммутабельность не состоятельна. Поэтому сейчас глобальное состояние может быть мутабельным - главное обеспечить семантическую иммутабельность. Каждая секта трактует это по своему и объяснить где начинается и где заканчивается эта семантика - невозможно. Но для простоты можно сказать так "с большей долей вероятности внешнее состояние не может влиять на результат исполнения функции, а функция на внешнее состояние".

    • @daedaliusX
      @daedaliusX 4 года назад +1

      Он про это чуть позже рассказал на примере числа PI
      41:45

  • @rustonelove
    @rustonelove 4 года назад +1

    Открою ещё одну тайну - адептам пропаганда рассказывает, что типизация имеет какое-то отношение к ФП. Но нет, опять обманули. Когда ФП сидело с голой жопой и лиспом(без всяких там сигнатур, типизаций, массивов, функций) - в императивнище уже была типизация.
    ФП всегда относилось к классу скриптухи. Т.е. к динамической типизации, к gc и прочим прелестям. От того там и взялись все эти функции высшего порядка и прочее. На самом же деле это просто свойства скриптухи. Когда у тебя gc и динамическая типизация - у тебя никаких не проблем с замыканиями, локальными функциями и прочим.
    И уже из скриптухи всё это перекочевало в ФП.

  • @rustonelove
    @rustonelove 4 года назад +3

    42:30 - ой, а тут у нас пропагандист запутался в показаниях. Глобальная переменная же делает функцию нечистой, а теперь вдруг какая-то константность появилась? Ну и в целом как-то быстро он убежал от сайд-эффектов. Просто лозунг вкинул и в кусты.

  • @rustonelove
    @rustonelove 4 года назад +3

    43:30 - каждая минута повышает накал шизофазии. Мало того, что сектант как преимущество чистых функций назвал мемоизацию, которая не-чистая и ломает эту чистоту для функции. Дак ещё он обманул аудиторию.
    Дело в том, что моизация - это та самая несотоятельность чистоты и иммутабельности о которой я говорил. Это говно не может быть быстрым, поэтому что делают сектанты? Они берут своё говно, которое тормозит и прикручивают к нему мутабельные хаки.
    Дело в том, что вне ФП никто и никогда эту функцию бы не вызывал от одних и тех же аргументов 10 раз. И эти функции не тормозили бы, как тормозит ФП.
    Т.е. по-сути сектант вам за преимущество сектанта то, что в комплекте с ним идёт чистилка для дерьма, которым он всё обмажет в твоём доме. Но подожди. Если у меня бы не было сектанта - у меня бы не было дерьма и мне бы не нужно было ничего чистить.
    В общем такое оно - ФП. Просто нелепые потоки шизофазии и невежества.

    • @daedaliusX
      @daedaliusX 4 года назад

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

  • @user-yq9on6zp7n
    @user-yq9on6zp7n 3 года назад +1

    Полный писец подачи. Пример зас... мозгов

  • @hino2
    @hino2 3 года назад +4

    Без обид, но лекция херня. Подача материала рваная, перескакивает туда сюда, уследить сложно, понять еще сложнее, воспринять - невозможно. Не представляю ЧТО вынесут из аудитории у себя в головах все слушающие.

  • @rustonelove
    @rustonelove 4 года назад +5

    3:30 - пошла невероятная шизофазия. Первая проблема сектант - он жертва пропаганды. Т.е. такое понятие как "создаём новый массив" - это уже требование его секты. В "императивном стиле"(который существует только в фантазиях адепта данной секты) так никто не пишет. Ну и да, массивов не существует в ФП - пусть сектант изучит базовые методички.
    Вторая проблема - сектант не может мыслить. У него в голове каша. Он не понимает разницу между функцией, функциональным и прочим. Самое смешное тут то, что это не функция в контексте ФП и вообще никаких методов в ФП нет и быть не может.
    Третья проблема - сектант запутался. Он берёт лоулевел логику и сравнивает с хайлевел. Причём никаким образом сектант не объясняет - почему одно декларативно(и фп), а другое нет. Ведь там есть метод push - чем он отличается от filter?
    Очень просто это понять на примере for. Здесь сектант использует for, а не for of. Т.е. наличие здесь переменной - это следствие использование более общей, более лоулевел конструкции. И императивно точно так же можно использовать for of и переменной не будет. Т.е. сектант наврал. Тоже самое со всем остальным.
    Был бы сектант не залётный, а более компетентный - он бы зашел по нормальной методичке. Типа filter является функцией высшего порядка и такое свойственно и исходит из ФП. И какие-то неофиты зелёные в это даже поверят. Но, по очевидным причинам, это полная чушь. В императивщине всё это было тогда, когда у ФП была голая жопа и лисп(не особо от голой жопы отличается).

    • @AbraKadabra000
      @AbraKadabra000 4 года назад

      аплодирую стоя

    • @HOTBOY9961
      @HOTBOY9961 4 года назад +3

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

    • @rustonelove
      @rustonelove 3 года назад

      @Printer t me proriv_zaparti

    • @rustonelove
      @rustonelove 3 года назад

      @Printer - мне лень что-либо писать очередному дошколёнку в этой помойке.

  • @rustonelove
    @rustonelove 4 года назад +3

    41:50 - сектант врёт. Чистые функции не используют исключений - это самое основное. Но сектант вам об этом не сообщил. По-сути в контексте жабаскрипта не может быть чистых функций. Когда кто-то вам говорит об обратном - это клоун.
    Самое смешное, что та функция, которую пропагандист выдавал за чистую - не чистая. Причём на фундаментальном уровне. Но не понимать очевидных вещей - норма для залётных пропагандистов. Почти всегда в жабаскрипте эта функция будет возвращать nan, а nan != nan. sqr("a") === sqr("a") === false. Поломалась чистота. Причём никакие разговоры про "а вот у нас тайпскрипт" не работают - нан - это number и может получиться из двух не-нанов.
    Про исключения я уже сказал. Почти любая функция, даже (a, b) => a + b - имеет побочный эффект.

    • @johnstrayk5208
      @johnstrayk5208 3 года назад

      А какой побочный эффект?

    • @rustonelove
      @rustonelove 3 года назад +1

      @@johnstrayk5208 to_string

    • @johnstrayk5208
      @johnstrayk5208 3 года назад

      @@rustonelove можете подробней пояснить?

    • @rustonelove
      @rustonelove 3 года назад

      ​@@johnstrayk5208 + может триггерить to_string. const a = {toString() {throw new Error(); } }; const b = 123; a + b;

    • @johnstrayk5208
      @johnstrayk5208 3 года назад

      @Printer я тоже нихера не понял)

  • @rustonelove
    @rustonelove 4 года назад +2

    40:00 - здесь сам сектант показывает то, о чём я говорил. Здесь можно сказать, что он умножил свои потуги на ноль, но это норма для сектантов. Ведь он мутирует копию и нарушает своё же условие. Здесь остаётся уповать на то, что "здесь copy точно никто не использует, а вот с fruits не всё так однозначно" - только это обман. Опять же здесь спасёт только заинлайненный в выражение объект. Но это не является общим решением. В конечном итоге в реальности никакого явного разделения нет. И хрен ты разберёшься кто и где и что использует.
    По этому в том же хаскеле и другой минимально следующей методичке фп-дристне - подобного кода быть не может. sort() как функция с сайд-эффектом не может возвращать массив. По определению.
    На самом деле эта концепция так же не состоятельная. Она начиналась как какой-то контроль сайд-эффектов. Ситуация там примерна та же, что в жабаскрипте с промисами. Далее там прикрутили всякого сахара типа async/await и теперь уже всех похрен. Там пол программы в этих монадах, либо ансейф-кастах. И никакого контроля не получилось.

  • @rustonelove
    @rustonelove 4 года назад

    8:40 - пациент опять запутался в пропаганде. Опять же - он сравнивает css/sql и ЯП. Даже забудем о том, что sql он потрогал зря и это его похоронит. Это уже какая-то шиза, но дело не в этом.
    Возвращается к тому, что я писал ранее. Сектант показывает button и что же реально он показывает? Он показывает именно императивное описание того как кнопка должна выглядеть. На уровне свойства ширина мы действительно говорим "ширина столько же". Но на этом уровне не это наша задача. И вот никак декларативно сказать "это кнопка" мы не можем.
    Точно так же как на уровне sql - мы чётко описывает то, каким образом получить нужные нам данные. Описываем всё императивно. Где же тут "мамка дай пиццу?" А нету. И в этом проблема сектантов залётных - они несут откровенную херню. Несут в той области, где ЦА крайне слаба. Это веб, это js, это фротенд.

    • @aksenoff
      @aksenoff 4 года назад +4

      Назвать SQL полностью императивным языком может только неуч, либо тролль. Ты сеешь терминами направо и налево, так что я больше склоняюсь ко второму варианту.
      Спешу огорчить: твои многобуквенные простыни прочтут полтора землекопа, и это даже хорошо, потому что та их часть, которую я осилил, состоит на 75% из спорных и субъективных суждений.
      Докладчик же, "сектант", нарочито примитивизирует свой рассказ, чтобы сделать его максимально доступным. Да, фронтендеры часто не блещут эрудированностью, в этом и смысл такого подхода. Но это не значит, что им не нужны удобные примы из ФП, которые и в JS были привинчены с подобной целью.
      Обычно я не пишу ответы к троллингу, но объем натролленного вызывает смесь уважения, кринжа и сожаления о потраченном тобой времени.
      Давай по-новой, Миша, все херня.

    • @TDmitry412
      @TDmitry412 4 года назад

      Завязывайте курить Ролтон, иначе совсем подсядете на майонез )

  • @rustonelove
    @rustonelove 4 года назад +3

    11:00 - какую же херню несёт этот пропагандист. Функция в программировании никакого отношения к функции вне программирования не имеет. Когда кто-то начинает нести херню про "процедуру", про "не возвращает" - это уже клоун по определению. Достаточно посмотреть на то как он начал мямлить про какие-то бабкины вместо ответа на вопрос "почему?". Какой-то идиот эту херню написал в википедии и теперь сектанты её повторяют.
    Понятия "процедура" вообще никогда не существовало как антипод функции. Это просто где-то кто-то родил новый базворд, который сдох тут же по причине простой - унификация. Уже существовал базворд "функция" и он использовался и в академической среде и в программировании. В основном всё это засилие каких-то процедур после 60х - результат засилия паскаля и древних базвордов в 90/00 годах.
    В императивщине ещё с фортратна и уж тем более с си - функции были и возвращали значения. И если до си ещё были какие-то разночтения в базвордах в мейнстриме, то после уже нет.
    В конечном итоге - функция без return существует и такой она всегда была. Никакого разделения на функции/процедуры нет - сектант выдумал эту херню. И function в js значит именно то, что значит.

  • @rustonelove
    @rustonelove 4 года назад +1

    44:00 - очередной сеанс шизофрении. Пропагандист вбрасывает лозунги даже не пытаясь в какое-либо обоснование. Кешируемость никаким образом не зависит от чистоты. Та херня с момизацией - убогий костыль для самой чистоты. Вне чистоты этой проблемы нет. Сама момоизация лишает функцию чистоты. Любой кеш мутабельный.
    Опять же простота - основания? А нет оснований.
    Ссылочная прозрачность. Тут нас сектант зачитывает первую строчку из википедии, которая ничего не значит. Она не является преимуществом сама по себе и сектант не учитывает то какими затратами она достигается.
    Легко тестировать - это полная херня. Это всё работало давно, когда глобальное состояние в любом виде не было легитимным. Сейчас это не так. И любая функция зависит от глобального состояния. Т.е. нельзя протестировать отдельную функцию, потому как она объявлена в контексте другой функции и на явно захватывает состояние оттуда.
    К тому же, никаких чистых функций в принципе не существует.

    • @daedaliusX
      @daedaliusX 4 года назад

      > Кешируемость никаким образом не зависит от чистоты.
      Но ведь кеширование в это виде элементарно реализовывать, не?
      > Мемоизация - убогий костыль для самой чистоты
      Смотрел на кеширование как на средство повышения производительности. То что под капотом юзаются хаки как раз может волновать только фанатиков.
      > Не учитывает то какими затратами достигается ссылочная прозрачность.
      Ой, всем пофиг пока оно не тормозит. Возьми тот же Redux который большинство использует просто по причине наличия React в проекте. ИЧСХ нормально работает даже на мобилках если совсем уже голову не отключать при написании кода (например триггерить Redux с валидацией на каждый onChange).
      > Легко тестировать - это полная херня.
      Приведи пример что тестируется легче чем чистая функция.
      > Нельзя протестировать отдельную функцию, потому как она объявлена в контексте другой функции и на явно захватывает состояние оттуда.
      Ты имеешь ввиду, что сложно доказать корректность работы программы (чем никто не занимается если речь не идет от отправке людей за пределы Этой Планеты). А вот тестировать как раз очень легко. Достаточно программу составлять из модулей, а не писать всё в одной простыне.

    • @rustonelove
      @rustonelove 4 года назад

      ​@@daedaliusX
      >Но ведь кеширование в это виде элементарно реализовывать, не?
      Не. Оно здесь и ненужно.
      >Смотрел на кеширование как на средство повышения производительности.
      ФП, чистота и прочий мусор не способны к производительности. Зачем делать говно, что-бы потом его исправлять? К тому же, никакого повышения производительности нет.
      Изучи букварь. Мутация сама по себе кеширование. Ты читаешь значение, которое обработчик мутирует. В фп обработчик не может мутировать и обязан вызываться на запрос значения. А далее путём костылей это пытаются вернуть.
      >То что под капотом юзаются хаки как раз может волновать только фанатиков.
      Нет, просто ты нихрена не понимаешь.
      >Ой, всем пофиг пока оно не тормозит.
      Ты бы так не позорился. Напомню контекст данному гению "у нас тормозит - мы добавили говнолибу, что-бы она не тормозила и которая решает проблему" и далее ответ "не решает - это обман". И тут мамкин гений в комментах мне отвечает "пока оно не тормозит". Ты осознаешь несколько нелепую херню несут боты типа тебя?
      >Возьми тот же Redux который большинство использует просто по причине наличия React в проекте.
      Нет, это говно используется потому, что пропаганда внушила адептам его использовать. Потому что в реакте существует фатальный недостаток. А говнукс прикрученный добавляет к нему сайд-эффекты.
      >ИЧСХ нормально работает даже на мобилках
      Нет, очевидно.
      >если совсем уже голову не отключать при написании кода (например триггерить Redux с валидацией на каждый onChange).
      И тут же оказывается, что всё что было выше сказано - ложь. Уровень. Твои познания крайне скудны.
      >Приведи пример что тестируется легче чем чистая функция.
      Тебя поимела пропаганда. Никакой чистой функции там нет. Почему вы, бездарные сектанты, все настолько тупая? Сектанту внушили какой-то лозунг и он повторяет, ведь он бот.
      >Ты имеешь ввиду, что сложно доказать корректность работы программы (чем никто не занимается если речь не идет от отправке людей за пределы Этой Планеты). А вот тестировать как раз очень легко. Достаточно программу составлять из модулей, а не писать всё в одной простыне.
      Ты опять опозорился. Вначале были функции, а теперь уже каике-то модули. Уровень шизофазии просто поражает.
      Тебе сообщают о том, что в рамках базовый методички захваченные переменные не нарушают чистоты. Давай попроще. У тебя есть функция (a, b) => f(a, b, c, d, f) - это самое простое. Как мне протестировать функцию f? Она же чистая. Ой, ты обделался. Потому как жертва пропаганды.
      Для того, что-бы протестировать функцию f - нужно его получить, для этого нужно сгенерировать аргументы для порождающей её функции, а так же обеспечить ей необходимой контекст(в котором существуют переменные c d f и с необходимыми данными).
      Поэтому для тестирования любой чистой функици нужно так же поднимать её окружение. Единственное, где не нужно - это для функции верхнего либо без аргументов(что не имеет смысла), либо с примитивными аргументами. Потому как любой аргумент - это такое же окружение, которое нужно поднимать.

  • @rustonelove
    @rustonelove 4 года назад

    4:25 - забыл про самое важное. Распалелливание. Это так мило, когда залётный жабаскрипт-пропагандист, который нихрена не знает, вбрасывает что-то аудитории, которая так же нихрена не знает.
    Кто не понял. Я уже давал части ответа. Дело в том, что уже давно чистота является не фактической, а семантической. А когда мы говорим о параллелизме - мы говорим о фактической чистоте. Т.е. сектант вас попросту обманул.
    Но самое интересное тут то, что несмотря на все завывания фп-сектантов - развитие параллелизма там находится в зачаточном состоянии. Сам параллелизм вообще не может быть выражен в рамках ФП. Если проще - сектанты орут о "просто расппаралеливать", но в реальности ни у кого из сектантов этой параллельности нет.
    Я даже больше скажу - почти все сектантские недоязычки многопоточность вообще не поддерживают. Тот же ml во всех его проявлениях. Да вообще ничего нет. Там до сих пор fork из 90х годов.

    • @user-ks7sy2mi1b
      @user-ks7sy2mi1b 4 года назад

      я нихрена не понял, но ты не понял

    • @rustonelove
      @rustonelove 4 года назад

      @@user-ks7sy2mi1b Чего?