Ленок, при создании функции мы пишем не аргументы, а параметры, аргументы это при вызове функций, я из-за этого путался постоянно, потому что каждый объясняет не пойми как, одни вызываем функцию с параметрами, другие пишем функцию с аргументами и т.д.
Классное вступление! Видео понравилось очень. Особенно комментарий про "исчадие":))) Оценила, сама проверила, так как повторяла за Вами код. "Исчадие" словила:) Класс! Спасибо!!!😍
Если использовать 'return curried.bind(this, args)' - этот вызов навсегда прикрепляет контекст к carried. В результате фиксируется контекст. Не получится сменить контекст функции, которая была создана передачей частичного кол-ва аргументов.
Ладно ладно, вопросов нет крутой видос, лайк подписка. Если к этому можно было б ещё что то добавить, то чуть больше расскрыть тему с юзкесами каррирования, но в остальном идеально!
Пожалуй, самое жесткое решение, правда без this: const curry = (fn) => function curried(...a) { return a.length >= fn.length ? fn(...a) : (...b) => curried(...a, ...b) } Заспредженные аргументы можно чейнить через запятую в списке аргументов функции
Т. е. получается что bind здесь не вызывает функцию, а просто её привязывает к самой себе или как? this является контекстом curried? Объясните пожалуйста, а то я новичок и не до конца понимаю цель данной функции в этом случае.
Да, метод bind не вызывается, а вот методы apply и call - вызываются. С помощью метода bind, можем типа копировать функцию или метод из какого-то класса, но вызывать можем только по своим нуждам.
Немного другой пример карирования. 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
тема наверное интересная, у мня только 1 вопрос, зачем? какое практическое применение этой концепции? типа есть вот такая задача и её можно решить только карированием и больше никак, есть такие задачи?
Вообще в работе редко использую. Я бы даже сказала почти никогда. Но это один из приёмов программирования, который часто может применяться в функциональном программировании. + на собесах спрашивают часто. И в итоге для общего развития :)
@@serdotsenko отсюда и возник термин "js для собеседований" а в целом каррирование в сложных проектах появляется, например в логировании часто используют, чтобы дробить логи на составляющие вызывая функцию с конкретным набором параметров в разных частях проекта
Спасибо! Каррирование - это очень частый приём в функциональном программирование. Например, у вас есть набор базовых функций и из них создаётся набор более сложных функций. Но я признаюсь мало работала с настоящей функциональщиной, поэтому супер конкретный пример сложно придумать. :) На собесах очень часто такую тему тоже спрашивают.
Какой-то мазохизм это каррирование. На сколько часто его используют в коде? Это же читать не возможно. Ни разу не видел, если увижу - буду проклинать человека написавшего такой код.
Солнышко, у меня есть вопросик, написал многим верстальщикам никто не знает ответ, Я использую паг и в одном из видосов, я видел, ты тоже его юзаешь. Так вот, есть ли аналог eCSStructor который мы используем в html для копирования классов? Паг классный шаблонизатор, но смысл от него если всё равно приходится залетать в файл html, постоянно. Пожалуйста помогииииииииии мне. Кста только у тя увидел видео про каррирование
Здесь я не рассказывала про то, зачем это нужно. Больше подразумевая, если человек ищет, то ему нужно :)) Но так каррирование довольно частый приём в функциональном программировании. Ну и на собесах его часто спрашивают.
Поросенок, чего не под Авдеевкой в выгребной яме? В очередной раз испугался Русского сапога, как и в Бахмуте?) Твое проклятое племя всегда будет в рабстве под Русским сапогом, запомни, нация трусливого скота)
Ленок, при создании функции мы пишем не аргументы, а параметры, аргументы это при вызове функций, я из-за этого путался постоянно, потому что каждый объясняет не пойми как, одни вызываем функцию с параметрами, другие пишем функцию с аргументами и т.д.
Спасибо! Офигенный формат - очень заходят ваши объяснения. Посмотрю все уроки :)
Крутая подача, класс😃😃🥰
Классное вступление! Видео понравилось очень. Особенно комментарий про "исчадие":))) Оценила, сама проверила, так как повторяла за Вами код. "Исчадие" словила:) Класс! Спасибо!!!😍
Если использовать 'return curried.bind(this, args)' - этот вызов навсегда прикрепляет контекст к carried.
В результате фиксируется контекст. Не получится сменить контекст функции, которая была создана передачей частичного кол-ва аргументов.
Ты похожа на милого подростка-пацана из американских фильмов.
Спасибо за крутые видео
Благодарю за пояснение! Хотелось бы конечно побольше разъяснений где и как и зачем его еще испоьзуют?
а используют затем, чтобы раз***ать джунов на собесе :)
Спасибо огромное за Ваши труды, очень помогло видео! Если что в прошлом предложении была шутоточка...раз 10 пересматривал)))
Лайкосик как только попросила, а подпишусь как досмотрб
😘 Спасибо!
огромное спасибо за ваш труд!
❤️
🎓Естественная подача позволяет мозгу легче думать и вникать 🎩
За восемь лет работы с джс ни разу не использовал каррирование, кому оно надо кроме собеседующего?
Оно надо, если ты пишешь в функциональном стиле и тебе нужно замкнуть данные.
В остальном конечно, оно без надобности
@@JohnLee-bo9ft хороший ответ для собеседования)
ну короче, по факту поняла, в принципе должно быть все нормально
Спасибо!
Понял, что нихера не понял)
Лайк префаером, проорал с заставки))
Ладно ладно, вопросов нет крутой видос, лайк подписка. Если к этому можно было б ещё что то добавить, то чуть больше расскрыть тему с юзкесами каррирования, но в остальном идеально!
Спасибо! :)))
Будем теперь смотреть всё время
почему во встроенном терминале не запускаете?
@@nonamenobody2795 неудобно во встроенном, занимает кучу пространства от редактора.
Приятные эмоции))
Valery kipelov?
Лучшее объяснение на youtube!
Спасибо за видео!
Начало 2:02
Пожалуй, самое жесткое решение, правда без this:
const curry = (fn) =>
function curried(...a)
{
return a.length >= fn.length ? fn(...a) : (...b) => curried(...a, ...b)
}
Заспредженные аргументы можно чейнить через запятую в списке аргументов функции
Вы удивили фото на заставке видео. Вы девушка с перчинкой, с огнём 🔥
😍😁 Спасибо!
Т. е. получается что bind здесь не вызывает функцию, а просто её привязывает к самой себе или как? this является контекстом curried? Объясните пожалуйста, а то я новичок и не до конца понимаю цель данной функции в этом случае.
Да, метод bind не вызывается, а вот методы apply и call - вызываются. С помощью метода bind, можем типа копировать функцию или метод из какого-то класса, но вызывать можем только по своим нуждам.
Жаль что вы уже такие темы не разбираете((
спасибосики за видосик шикардосик
Привет! Можно еще короче
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% 😤🤣
На обложке зачеркнуто З и получилось "РАЕБЁМ"?
😂 Ага, игралась с названиями, чтобы ничё не заподозрили.
@@webelart :)
тема наверное интересная, у мня только 1 вопрос, зачем? какое практическое применение этой концепции? типа есть вот такая задача и её можно решить только карированием и больше никак, есть такие задачи?
Вообще в работе редко использую. Я бы даже сказала почти никогда. Но это один из приёмов программирования, который часто может применяться в функциональном программировании. + на собесах спрашивают часто. И в итоге для общего развития :)
@@webelart вот именно, что на собесах спрашивают, то чем почти никто не пользуется )))
@@serdotsenko отсюда и возник термин "js для собеседований"
а в целом каррирование в сложных проектах появляется, например в логировании часто используют, чтобы дробить логи на составляющие вызывая функцию с конкретным набором параметров в разных частях проекта
а в превью картинки точно все правильно написано?
😁😁😁😄 нашли ошибку???
@@webelart ошибка ли это, вот в чëм вопрос 😆
О круто! а в каком реальном случае может понадобиться такое коррирование?
Спасибо! Каррирование - это очень частый приём в функциональном программирование. Например, у вас есть набор базовых функций и из них создаётся набор более сложных функций. Но я признаюсь мало работала с настоящей функциональщиной, поэтому супер конкретный пример сложно придумать. :) На собесах очень часто такую тему тоже спрашивают.
@@webelart вово, только для собесов, за 5 лет работы ни разу не столкнулся, но перед собесом зашел послушать, чтобы в теории чето ответить
обьяснили четко, спасибо, но вот только на*рена оно все нужно в реальной работе - вообще не понятно
Есть такое
Какой-то мазохизм это каррирование. На сколько часто его используют в коде? Это же читать не возможно. Ни разу не видел, если увижу - буду проклинать человека написавшего такой код.
Солнышко, у меня есть вопросик, написал многим верстальщикам никто не знает ответ, Я использую паг и в одном из видосов, я видел, ты тоже его юзаешь. Так вот, есть ли аналог eCSStructor который мы используем в html для копирования классов? Паг классный шаблонизатор, но смысл от него если всё равно приходится залетать в файл html, постоянно. Пожалуйста помогииииииииии мне. Кста только у тя увидел видео про каррирование
Как это понять так, что бы все это поняли?!?!🥴🥴🥴0:15 А НУ СЮДА РАЕБЕМ ЭТО КАРРИРОВАНИЕ🤛🤛💥🥺🥺🥺
Ни хрена не понятно, но очень интересно.
😂😂😂
женщина, вам лайк поставил
😘 Пасиба!
Кто-то залетает с ноги, а я залетел с лайка)
Вот тебе лайкосик..
Спасибо! 😁
у меня слабость к умным девушкам 😍
Комментарий как второй лайк
Таки а зачем это каррирование нужно, я так и не понял, честно говоря)
Здесь я не рассказывала про то, зачем это нужно. Больше подразумевая, если человек ищет, то ему нужно :))
Но так каррирование довольно частый приём в функциональном программировании. Ну и на собесах его часто спрашивают.
Спасибо за видео, но своими ошибками ты часто запутываешь. Может лучше сразу писать правильно?)
Рекомендую начать тщательно слушать, либо искать другие объяснения и видео, которые вас не запутывают.
Блин, почему я вас смотрю? Я же вообще не джавист ))
так это и не джава)
Наверное это видео надо переснять: слишком много "короче" и мало объяснения зачем всё это нужно
Наверно вам нужно поискать что-то другое, где всё подлиннее. 😘
спасибо за полезное видео
Зараза!
Тут перебор. Звучит очень неприятно!
@@webelart не. Это такой комплимент. ❤️
@@Konstantin.Zharinov Само слово мне не нравится. Но за комплимент как смысл, спасибо! 😘
wtf РУСИ-МУСИ-ПУСИ! ?
🥳
Блин прям ругала требовала подписатся. Боюсь не подписатся
😈😈😈
Это топ
lol
Кринжово, запутанно, непонятно
Так грусненько стало…
@@webelart попробуйте мантаж, лишнюю путаницу удалите, оно никому не нужно
@@МихаилИванов-к7й Монтировать я буду так как мне это нравится. Не нравится, кнопка unsubscribe. А это видео одно из лучших по монтажу.
@@МихаилИванов-к7й и да про грусненько это было сарказм 🤌
@@webelart было трудно, но я догадался👍🤣
Круговорот функций в javascript, чет в голос😅
Не русской а расейской
АРЯЯЯЯЯЯЯЯЯЯ
@@Leman_357 расиянка?
Поросенок, чего не под Авдеевкой в выгребной яме? В очередной раз испугался Русского сапога, как и в Бахмуте?) Твое проклятое племя всегда будет в рабстве под Русским сапогом, запомни, нация трусливого скота)
Спасибо!