File size: 498 Bytes
3dabe4a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)