fork download
  1. class IteratorWrapper:
  2. def __init__(self, f, iterator):
  3. self.f = f
  4. self.iterator = iterator
  5. self.gen = None
  6.  
  7. def __iter__(self):
  8. self.gen = iter(self.iterator)
  9.  
  10. return self
  11.  
  12. def __next__(self):
  13. return self.f(next(self.gen))
  14.  
  15.  
  16. def iter_map(f, iterator):
  17. return IteratorWrapper(f, iterator)
  18.  
  19.  
  20. l = [1]
  21.  
  22. mapped = iter_map(lambda x: x * 2, l)
  23.  
  24. for _ in range(2):
  25. for a in mapped:
  26. print(a)
  27.  
  28. cmapped = map(lambda x: x * 2, l)
  29.  
  30. for _ in range(2):
  31. for a in cmapped:
  32. print(a)
Success #stdin #stdout 0.02s 9376KB
stdin
Standard input is empty
stdout
2
2
2