LINUX.ORG.RU

«List as Js» или попросту listass

 , ,


0

1

Грустно, когда каждый перловик считает должным смеяться над питоновским join.

Для себя я проблему решил так.

НЕТ:

print('-'.join(map(lambda x: f'{x ** 2}',
                   filter(lambda x: 2 < x < 8,
                          map(lambda x: x * 2, range(5))))))

НО ДА:

class list(list):
    map = lambda self, fn: list(map(fn, self))
    filter = lambda self, fn: list(filter(fn, self))
    join = lambda self, d: d.join(map(str, self))


array = list(range(5))

print(array.map(lambda x: x * 2)
           .filter(lambda x: 2 < x < 8)
           .map(lambda x: x ** 2)
           .join('-'))

★★★★★

Последнее исправление: vvn_black (всего исправлений: 1)

Это можно показывать на занятиях в универах как эталонный говнокод.

anonymous
()
Ответ на: комментарий от Crocodoom

Выделение памяти на каждый промежуточный список

Это ж функциональное программирование, удивляться нечему.

vvn_black ★★★★★
() автор топика

Есть где то черный список разрабов? Добавьте этого пациента туда.

anonymous
()
Ответ на: комментарий от anonymous

Это можно показывать на занятиях в универах как эталонный говнокод.

Есть где то черный список разрабов? Добавьте этого пациента туда.

Раз так, то это успех.

vvn_black ★★★★★
() автор топика
Последнее исправление: vvn_black (всего исправлений: 2)
Ответ на: комментарий от vvn_black

Дело не в том, что ты хочешь очень сделать из говнозмеи Haskell, а в том, что говнозмея не Haskell и это делать не надо.

slaykovsky ★★★
()
Ответ на: комментарий от vvn_black

на первоё апреля стараются других одурачить, а не себя в глазах других

next_time ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.