- 1
- 2
- 3
> What’s New In Python 3.0
Removed reduce(). Use functools.reduce() if you really need it; however, 99 percent of the time an explicit for loop is more readable.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−19
> What’s New In Python 3.0
Removed reduce(). Use functools.reduce() if you really need it; however, 99 percent of the time an explicit for loop is more readable.
Действительно, зачем он нужен вообще
https://docs.python.org/3.0/whatsnew/3.0.html
меня огорчило, что у сортировки совсем выпилили cmp
но зачем было выпиливать - непонятно
А ну да, там же дергают key(object)
Ну или через partial похожее.
Это любимая игрушка лисперов. В перле тоже есть (в лист::утилз) но ни разу не доходилось использовать.
А зачем, если есть 100500 вариантов циклов, а ФП не идиоматично?
> лисперов
Только если схемеров и кложуристов, в CL куча макросов для циклов. А вот хаскелистам без fold(l|r) действительно никак. Это, по сути, база функционального итератора, см The Essence of the Iterator Pattern.
> А зачем, если есть 100500 вариантов циклов, а ФП не идиоматично?
Ага, 100500 вариантов циклов VS. 100500 вариантов передаваеймой closure.
Цикл по крайней мере легче дебажить.
> Только если схемеров и кложуристов, в CL куча макросов для циклов.
ФП было очевидно, а вот отсыл на лиспо-образный язык у меня был чисто интуитивный: `reduce(f, a, b, c)`, если развернуть, аналогично `(f (f a b) c)`.
foldl f zero [a, b, c] = f (f (f zero a) b) c
foldr f zero [a, b, c] = f a (f b (f c zero))
> 100500 вариантов передаваеймой closure
Вот это не совсем понятно. Ты сравниваешь синтаксисы циклов и функции свёрток? Функции свёрток правильней сравнивать с телами циклов.
> Функции свёрток правильней сравнивать с телами циклов.
Да. Про них и речь. Есть кучи идиоматичных циклов которые большинство разрабов поймут без проблем. А вот покажи кому реализацию min/max через reduce - и все начинают плавать. И это уже из личного опыта: пытался людям объяснять что делает reduce, и наивно думал что с примером это будет проще. ФП вылетело из большинства CS курсов, с математическим языком тоже слабо - у людей нет базы на которую можно объяснение reduce положить.
что?
s = [1, 5, 2, 100, 500]
# Max
reduce(lambda x, y: x if x > y else y, s)
# Min
reduce(lambda x, y: x if x < y else y, s)
Крах функцианальной парадигмы? ЧТО Ж ЭТО ДЕЛАЕТСЯ ЛЮДИ ДОБРЫЕ??? ГВИДО ЗАГОНЯЕТ В ИМПЕРАТИВНОЕ СТОЙЛО!!!111 НЕТ ПУТИ!!!!
Свинья грязь найдет. Неужели путхон читается лучше, грубо, битрикса? Т.е. проблемы, возможно есть, но все не настолько плохо.
ПХП извратил Ваш мозг настолько, что код без SQL инъекций теперь кажется Вам нечитаемым
если добавить к этому тот факт что абсолютное множество пхп программистов это очень плохие программисты, то становится понятно что конечно пхп не читается
это сколько ?
Если учитывать, что количество программистов php растет.
то количество то очень плохих программистов в % соотношение становится меньше.
А все говно в ПХП либо по не опытности, либо легаси. Ну есть еще откровенное говно, но его не меньше чем в других ЯП.
Если пройтись по ГК в разделе php. 99% это мешанина хтмл+ php + sql а это от не опытности.
Все эти EAV до добра не доведут