amarao: (Default)
[personal profile] amarao
[[1,2], [3,4]].flatten()
               ^ ERROR: Flatten is not a battery. That's why it's not in the Python.

Date: 2023-03-01 05:57 pm (UTC)
From: [personal profile] photo_viewer
sum([[1, 2], [3, 4]],[])

Date: 2023-03-01 07:09 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

Материализация всех промежуточных списков.

Date: 2023-03-02 01:14 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

Наличие двух различных семантик для одного имени метода — веская причина метод с таким названием не делать частью стандартной библиотеки.

Для строго типизированных языков придётся определить рекурсивный тип Tree[T] как T | List[Tree[T]] и сказать, что функция top имеет тип Tree[T] → List[T]. (А альтернативная семантика — это просто concat или монадный join.)

Date: 2023-03-02 03:45 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

Не, к дизайну API стандартной библиотеки у меня больших вопросов нет. Магические методы для поддержки перегрузки операторов всё равно нужны. Ну, может быть, они бы смотрелись красивее, если бы назывались не dunder-именами, а operator **, как в C++, но вот как раз метод, имя которого не является валидным идентификатором, магичнее dunder’а. Джойн нескольких строк в строку через разделитель-строку выглядит чужеродно как метод класса списка — потому что лишь малая часть всех списков является списком строк. И ещё джойнить же хочется не только списки, но любые итерабли.

Вот то, что issubclass(bool, int) и !issubclass(int, float) — это печалька.

Profile

amarao: (Default)
amarao

September 2025

S M T W T F S
 12345 6
78910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 7th, 2025 03:14 pm
Powered by Dreamwidth Studios