| class Seq: | |
| def __init__(self, iterable): | |
| self.iterable = iterable | |
| def map(self, func): | |
| return Seq(func(item) for item in self.iterable) | |
| def filter(self, predicate): | |
| return Seq(item for item in self.iterable if predicate(item)) | |
| def to_list(self): | |
| return list(self.iterable) | |
| def __iter__(self): | |
| return iter(self.iterable) | |
| def __repr__(self): | |
| return f"Seq({repr(self.iterable)})" | |
| def seq(iterable): | |
| return Seq(iterable) |