Три реализации задачи в функциональном стиле

preview_player
Показать описание
#soer #itubeteam

Рекомендации по теме
Комментарии
Автор

Нравятся такие видосы побольше бы таких

FrozenHeart
Автор

Видос огонь!
На практике не доводилось работать с функциональным стилем.
Очень полезно было это узнать

valbv
Автор

Спасибо большое, я начал понимать зачем нужно карирование, на примере конвейера.

arturg
Автор

В начале видео есть полторы минуты, когда вы просто говорите, можно было, чтобы размытие плавно исчезало перед началом объяснения и плавно возвращалось после, кажется, было бы чуть лучше) А так, спасибо за видео)

nickml
Автор

История о том, как из JS сделать Common Lisp

Жека-кп
Автор

Включил видео, отвернулся, через минуту повернулся, экран размыт, ну думаю пора спать.

gloomyrobust
Автор

Заявленные плюсы звучат очень хорошо, и если сама парадигма написания кода способствует этому - это супер круто. Единственное, что меня не порадовало, это итоговое содержание функции map. Серьёзно, тут же можно полдня только разбирать, что написано в этой строке xD
Возможно я неправ, говорю строго на правах мнения, но дело в том, что в данном коде присутствует 4 уровня вложенности вызовов, но кроме того цепочка вызовов ещё и зацикливается: мы вызываем map, чтобы получить функцию, в которой вызывается map, чтобы получить функцию, в которой вызывается map, чтобы получить функцию... Может это дело привычки, и в итоге после некоторой практики такое перестаёт вызывать трудности при чтении, но когда видишь такой код впервые, то не можешь отделаться от мысли, что он ужасен :) Чувство приблизительно то же, что и знакомстве с регулярками, которые изначально воспринимаются не иначе как непонятный набор символов, делающий какую-то магию.

nikolaymatveychuk
Автор

тот случай, когда учишь фронтенд и думал, что реакт и редакс сложно))))

antoxatube
Автор

Соер, респект. Это интересный контент. Спасибо 👍🏼

MaximRovinsky
Автор

в третьем примере в реализации pipe надо было sizeOf тоже использовать вместо .length чтобы совсем уж по красоте.
Но в целом вот этот вот висящий аккумулятор у map немного расстраивает. Если там сделать параметр по умолчанию это нормально будет или против парадигмы? или может переобозвать этот map в некий служебный accMap и его обернуть функцией map где уже не надо будет пихать пустой массив т.к. она будет сама вызывать accMap именно с пустым массивом ? тогда и второй пример бы уже выглядел получше.

А так немного приходилось ставить на паузу и до пояснений тратить немного времени чтобы понять что да работает, да правильно и как именно. Такие головоломки сами по себе прикольная штука, это было интересно. Ещё видел на жабаскрипте похожую очень по стилю реализацию прикручивания кеширования (мемоизации если угодно) к произвольной функции, тоже хороший пример. Понятное дело что немного практики и к этому всему можно привыкнуть, но наверное лучше это изучать на каком-нибудь хаскеле где это будет естественно а потом уже привносить в js (на codewars кстати есть какое-то количество задач именно по такому принципу - давайте сделаем на js вот такую штуку по примеру хаскеля, достаточно сложные штуки там есть)

TwilightSun
Автор

12:30 "... в нормальных языках..." ахахах, бедный JS

yummybunny
Автор

Было свободное время, взялся в качестве упражнения для ума разобраться с функционалкой. Автору честь и хвала, такой детальной проработки вопроса я не видел ни у кого (а большенство в лучшем случае останавливалось на чистых функциях). Только если ради каждого забитого в стену гвоздя должны кипеть такие страсти (а уровень абстракций реально зашкаливает)... "Назови мне хоть одну причину"(с) почему это все реально существует, и это двигают? Заговор мирового правительства? (желательно с той же степенью детализации и убедительности). С таким счетом на табло при сравнении кода для решения задачи, команду, за которую играл автор, пора разгонять

amin--hjmc
Автор

А не приводит ли это к неоправданому выделению памяти? В каждом вызове рекурсивной функции мы в замыкание ложим новый результат tail() и новый результат marge(), и все они живут пока не розвернется весь стек функции.

vitaliktereshchenko
Автор

Первая задачка, решение на Common Lisp:
(defun list-inc (lst)
(if (null lst)
()
(append (list (1+ (car lst)))
(list-inc (cdr

ФилиппДруан
Автор

позновательно, у меня только один вопрос, зачем ?

Bezzil
Автор

Топ!!! Побольше подобного контента. Посоветуйте книгу по ФП.

ПавелЮлианов
Автор

Есть ощущение, что третья по счету реализация (func_curry.js) - скорее reduce, нежели map. Или я заблуждаюсь?

gMaN
Автор

04:30 Так хочется сделать Array.prototype.map = null :)))
P.S. Про читаемость кода, я понял, что lst это list, а не last, только после того, как было озвучено, что "всё есть список".
Концепция, на вид, крутая - обязательно попробую.

CHERNOMORGAMES
Автор

Первое правило функционального программирования на JS - не использовать JS

misatokatsuragi
Автор

Подобные издательства над js можно пройти на курсах hexlet. Когда решал задачи мозг разрывался.

Egorro-hu