/
Tailord
/
omd
Обзор
Документация
Войти
/
Tailord
/
omd
Код
Запросы
4
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
functional
seq.py
28 строк
717 B
Daniil Polyakov
implement Seq
15 дек 2024, 00:53
15 дек 2024, 00:53
e7e1137
Код
Авторство
О чём код?
from typing import TypeVar, Sequence, Callable, Self from itertools import islice T = TypeVar('T') U = TypeVar('U') class Seq: def __init__(self, sequence: Sequence[T]) -> None: self._seq = sequence def map(self, func: Callable[[T], U]) -> Self: self._seq = map(func, self._seq) return self def filter(self, func: Callable[[T], bool]) -> Self: self._seq = filter(func, self._seq) return self def take(self, cnt: int) -> list[U]: return list(islice(self._seq, cnt)) if __name__ == '__main__': numbers = [1, 2, 3, 4, 5] seq = Seq(numbers) res = seq.filter(lambda n: n % 2 == 0).map(lambda n: n + 10).take(3) assert res == [12, 14]