Разберём каррирование в JavaScript на РУСИ-МУСИ-ПУСИ!
ฝัง
- เผยแพร่เมื่อ 5 ก.ย. 2024
- На пальцах всё изучим, до самой глубины. Поймём наконец-то эту страшно технику!
🍀 Поддержать канал: www.donational...
☕️ Купить кофе: buy.stripe.com...
🎨 Купить набор кистей Procreate: webelart.com/i....
✍️ Мой telegram channel: t.me/webelart
🏰 Английский TH-cam: @webelart_en
💁🏼♀️ Инстаграм: / webelart
🦄 LinkedIn: / webelart
Ссылка на голосовалку по видео: forms.gle/ahhf...
Рекомендую посмотреть ВСЕ ВИДЕО на моём канале!
Я рассматриваю различные темы веб-разработки, на текущий момент: веб-основы, веб-анимации, веб-дизайн и ОПЫТ В ДО*УЯ лет.
Ленок, при создании функции мы пишем не аргументы, а параметры, аргументы это при вызове функций, я из-за этого путался постоянно, потому что каждый объясняет не пойми как, одни вызываем функцию с параметрами, другие пишем функцию с аргументами и т.д.
Спасибо! Офигенный формат - очень заходят ваши объяснения. Посмотрю все уроки :)
Классное вступление! Видео понравилось очень. Особенно комментарий про "исчадие":))) Оценила, сама проверила, так как повторяла за Вами код. "Исчадие" словила:) Класс! Спасибо!!!😍
Благодарю за пояснение! Хотелось бы конечно побольше разъяснений где и как и зачем его еще испоьзуют?
а используют затем, чтобы раз***ать джунов на собесе :)
Ты похожа на милого подростка-пацана из американских фильмов.
Спасибо за крутые видео
Если использовать 'return curried.bind(this, args)' - этот вызов навсегда прикрепляет контекст к carried.
В результате фиксируется контекст. Не получится сменить контекст функции, которая была создана передачей частичного кол-ва аргументов.
Спасибо огромное за Ваши труды, очень помогло видео! Если что в прошлом предложении была шутоточка...раз 10 пересматривал)))
Лайк префаером, проорал с заставки))
За восемь лет работы с джс ни разу не использовал каррирование, кому оно надо кроме собеседующего?
Оно надо, если ты пишешь в функциональном стиле и тебе нужно замкнуть данные.
В остальном конечно, оно без надобности
@@JohnLee-bo9ft хороший ответ для собеседования)
🎓Естественная подача позволяет мозгу легче думать и вникать 🎩
огромное спасибо за ваш труд!
❤️
Ладно ладно, вопросов нет крутой видос, лайк подписка. Если к этому можно было б ещё что то добавить, то чуть больше расскрыть тему с юзкесами каррирования, но в остальном идеально!
Спасибо! :)))
Лайкосик как только попросила, а подпишусь как досмотрб
😘 Спасибо!
Вы удивили фото на заставке видео. Вы девушка с перчинкой, с огнём 🔥
😍😁 Спасибо!
Пожалуй, самое жесткое решение, правда без this:
const curry = (fn) =>
function curried(...a)
{
return a.length >= fn.length ? fn(...a) : (...b) => curried(...a, ...b)
}
Заспредженные аргументы можно чейнить через запятую в списке аргументов функции
Спасибо за видео!
Лучшее объяснение на youtube!
Будем теперь смотреть всё время
Спасибо!
Начало 2:02
Приятные эмоции))
Умничка, пусечка, чмоки-чмоки в щёчку, за такое замечательное объяснение :))
спасибо😊
Привет! Можно еще короче
function curry(fn) {
return (...args) =>
args.length >= fn.length ? fn(...args) : curry(fn.bind(null, ...args));
}
вау ты добавил тернарку? гений. А мы этого не знали, и что это даст кроме сокращения кода?
Начало просто топ 😂😂😂
Немного другой пример карирования.
add() return 0
add(1)() return 1
add(2)(3) return 5
function add(num) {
let result = 0
if (num === undefined) {
return result
}
result += num
return function carry(data) {
if (data === undefined) {
return result
} else {
result += data
return carry
}
}
}
ну да потому что у него, каждый раз при вызове функции будет возвращаться новая функция которая ожидает аргумент, поэтому нужно добавить условие при котором она не будет возвращать функцию снова@@user-mr8wp5zx3m
Энтузиазма с каждым видосиком все больше 🤣
100% 😤🤣
Исчадие тут пошло 🤣 🤣 🤣
Просто Ору!! 🤣🤣
Интересно, короче сигнатура функции и свойство length, рекурсивный вызов с проверкой.
Спс.
Елена лучшая^^
спасибосики за видосик шикардосик
ну короче, по факту поняла, в принципе должно быть все нормально
почему во встроенном терминале не запускаете?
@@nonamenobody2795 неудобно во встроенном, занимает кучу пространства от редактора.
Вот тебе лайкосик..
Спасибо! 😁
обьяснили четко, спасибо, но вот только на*рена оно все нужно в реальной работе - вообще не понятно
Есть такое
Какой-то мазохизм это каррирование. На сколько часто его используют в коде? Это же читать не возможно. Ни разу не видел, если увижу - буду проклинать человека написавшего такой код.
Valery kipelov?
Т. е. получается что bind здесь не вызывает функцию, а просто её привязывает к самой себе или как? this является контекстом curried? Объясните пожалуйста, а то я новичок и не до конца понимаю цель данной функции в этом случае.
Да, метод bind не вызывается, а вот методы apply и call - вызываются. С помощью метода bind, можем типа копировать функцию или метод из какого-то класса, но вызывать можем только по своим нуждам.
О круто! а в каком реальном случае может понадобиться такое коррирование?
Спасибо! Каррирование - это очень частый приём в функциональном программирование. Например, у вас есть набор базовых функций и из них создаётся набор более сложных функций. Но я признаюсь мало работала с настоящей функциональщиной, поэтому супер конкретный пример сложно придумать. :) На собесах очень часто такую тему тоже спрашивают.
@@webelart вово, только для собесов, за 5 лет работы ни разу не столкнулся, но перед собесом зашел послушать, чтобы в теории чето ответить
Комментарий как второй лайк
Кто-то залетает с ноги, а я залетел с лайка)
Понял, что нихера не понял)
Ни хрена не понятно, но очень интересно.
😂😂😂
спасибо за полезное видео
тема наверное интересная, у мня только 1 вопрос, зачем? какое практическое применение этой концепции? типа есть вот такая задача и её можно решить только карированием и больше никак, есть такие задачи?
Вообще в работе редко использую. Я бы даже сказала почти никогда. Но это один из приёмов программирования, который часто может применяться в функциональном программировании. + на собесах спрашивают часто. И в итоге для общего развития :)
@@webelart вот именно, что на собесах спрашивают, то чем почти никто не пользуется )))
@@serdotsenko отсюда и возник термин "js для собеседований"
а в целом каррирование в сложных проектах появляется, например в логировании часто используют, чтобы дробить логи на составляющие вызывая функцию с конкретным набором параметров в разных частях проекта
женщина, вам лайк поставил
😘 Пасиба!
Солнышко, у меня есть вопросик, написал многим верстальщикам никто не знает ответ, Я использую паг и в одном из видосов, я видел, ты тоже его юзаешь. Так вот, есть ли аналог eCSStructor который мы используем в html для копирования классов? Паг классный шаблонизатор, но смысл от него если всё равно приходится залетать в файл html, постоянно. Пожалуйста помогииииииииии мне. Кста только у тя увидел видео про каррирование
Как это понять так, что бы все это поняли?!?!🥴🥴🥴0:15 А НУ СЮДА РАЕБЕМ ЭТО КАРРИРОВАНИЕ🤛🤛💥🥺🥺🥺
у меня слабость к умным девушкам 😍
Спасибо за видео, но своими ошибками ты часто запутываешь. Может лучше сразу писать правильно?)
Рекомендую начать тщательно слушать, либо искать другие объяснения и видео, которые вас не запутывают.
Блин, почему я вас смотрю? Я же вообще не джавист ))
так это и не джава)
Наверное это видео надо переснять: слишком много "короче" и мало объяснения зачем всё это нужно
Наверно вам нужно поискать что-то другое, где всё подлиннее. 😘
Зараза!
Тут перебор. Звучит очень неприятно!
@@webelart не. Это такой комплимент. ❤️
@@Konstantin.Zharinov Само слово мне не нравится. Но за комплимент как смысл, спасибо! 😘
а в превью картинки точно все правильно написано?
😁😁😁😄 нашли ошибку???
@@webelart ошибка ли это, вот в чëм вопрос 😆
На обложке зачеркнуто З и получилось "РАЕБЁМ"?
😂 Ага, игралась с названиями, чтобы ничё не заподозрили.
@@webelart :)
Таки а зачем это каррирование нужно, я так и не понял, честно говоря)
Здесь я не рассказывала про то, зачем это нужно. Больше подразумевая, если человек ищет, то ему нужно :))
Но так каррирование довольно частый приём в функциональном программировании. Ну и на собесах его часто спрашивают.
Это топ
wtf РУСИ-МУСИ-ПУСИ! ?
🥳
Блин прям ругала требовала подписатся. Боюсь не подписатся
😈😈😈
lol
Кринжово, запутанно, непонятно
Так грусненько стало…
@@webelart попробуйте мантаж, лишнюю путаницу удалите, оно никому не нужно
@@user-uc5zi1gs8f Монтировать я буду так как мне это нравится. Не нравится, кнопка unsubscribe. А это видео одно из лучших по монтажу.
@@user-uc5zi1gs8f и да про грусненько это было сарказм 🤌
@@webelart было трудно, но я догадался👍🤣
Круговорот функций в javascript, чет в голос😅
Не русской а расейской
АРЯЯЯЯЯЯЯЯЯЯ
@@Leman_357 расиянка?
Поросенок, чего не под Авдеевкой в выгребной яме? В очередной раз испугался Русского сапога, как и в Бахмуте?) Твое проклятое племя всегда будет в рабстве под Русским сапогом, запомни, нация трусливого скота)
Спасибо!