The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Эксперимент по разработке частей ядра Linux на языке Rust"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Эксперимент по разработке частей ядра Linux на языке Rust" +/
Сообщение от Аноним (-), 10-Июн-17, 00:43 
>> Дал базы отдельно - работает. Не дал - работает с базой по умолчанию.
> Отлично. То есть получается этот твой мап принимает третьим аргументом доп. аргументы
> для приведения в число. Логично, че.

Третьим? Там их можно передавать столько, сколько влезет. Прикольно, да?


map(...)
    map(function, sequence[, sequence, ...]) -> list

> К черту единую ответственность, давайте
> внедрим в map еще и функционал по байндингу аргументов и по
> тому, как и в каком порядке их применять. Как это убого
> и узкоспецифично...

Рукалицо.жпг
Как все запущено.
Убого, это не знать ничего кроме ЖопоСкрипта, но мнение иметь. Ценное.
Оттуда и какие-то странные фантазии насчет мапа.


>>> def mymap(f, *args):

...   return  [f(*myargs) for myargs in zip(*args)]
...
>>> mymap(int, ['10','12','1338'])

[10, 12, 1338]
>>> mymap(int, ['10','12','1338'],[2,3,16])

[2, 5, 4920]


Вот и вся магия. Наивный зип пишется тоже в десяток строк, если что.
Это при том, что к питону я уже лет шесть не притрагивался.

> Напиши мне при помощи своего супирмощного map следующие конструкции:

Долго думали, конструируя cферического коня и подбирая примеры cпециально под ЖС?
Кстати, неплохо было бы вначале самому предъявить код, прежде чем кидать предъявы. Это так, на будущее. Да и на супермощность мапа никто не претендовал, это вы с какого-то перепугу придумали. Логичность, универсальность, простота - вот основные кирпичики.

А теперь замените любимое кресло на то, которое не жалко, присядте, пристегнитесь или прибейте к потолку подушку, дышите глубоко:

> 1) Применить основы в обратном порядке. Не порождая новый отреверсенный список, потому
> как а вдруг их мульён? И не мутируя оригинальный.

>>> map(int,['10','11','12','10'], reversed([2,10,16,32]))
[32, 17, 12, 2]

Круто, правда?


> 2) Применять ко всем строкам основу = 16. Не пользоваться лямбдами, потому
> что твой мап же супирмощный? Он же позволяет супирмощно внедрять аргументы?

А в ластах по фонарному столбу мне при этом не надо карабкаться? Нет? Ой спасибочки!
Тогда выбирайте, на вкус и цвет, без лямбд.


>>> map(partial(int,base=16),['10','11','12','10'])

[16, 17, 18, 16]
>>> imap(int,['10','11','12','13'], repeat(16))

'<itertools.imap object at 0x1338a0337>'
# а это вообще итератор, который позволяет обрабатывать последовательно нужные элементы,
# вместо героического втискивания нашего гипотетического мильенного списка в память
>>> list(imap(int,['10','11','12','13'], repeat(16)))

[16, 17, 18, 19]
>>> list(imap(int,['10','11','12','13'], cycle((16,))))

[16, 17, 18, 19]

> 3) Основ пусть будет всего два: 16 и 32, но чтобы по
> окончанию списка основ он начинал сначала (а не совал None) --
> '10' как 16, '11' как 32, '12' как 16, '13' как
> 32. Не порождая новый список основ, потому как а вдруг чисел
> будет мульён?
> '10' как 16, '11' как 32, '12' как 16, '13' как 32

'11' как 32 и '13' как 32? Уличная магия? Именно так увы, нельзя :(


>>> imap(int,['10','11','12','13'], cycle((16,32)))
>>> list(imap(int,['10','11','12','13'], cycle((16,32))))

[16, 33, 18, 35]

> 4) Применить ко всем строкам основу = 16, потом к каждому числу
> прибавить его индекс: ['10','11','12','13'].map((s, i) => parseInt(s, 16) + i). Это
> пример на JS-ном мапе.

Долго думали над сферическим примером, подходящим именно под черезжо^W жс-но альтернативный parseInt? А зря.


>>> map(lambda (i,x): int(x, base=16) + i, enumerate(['10','11','12','13']))

[16, 18, 20, 22]


Все? Кстати, как оно там, в луже?


> А ты напиши на супирмощном питоновском.
> супирмощном питоновском.
> что твой мап же супирмощный?
> супирмощном

В этом вся суть ЖСников, VBшников и прочих умников. Вместо конструирования из простых, понятных и универсальных кирпичиков любят всякие разные "сделай_все_за*бись_cуперпупирsubfunproc".


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Эксперимент по разработке частей ядра Linux на языке Rust, opennews, 04-Июн-17, 11:42  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру