class mumap: def __init__(self, proc, seq): self.__proc = proc self.__seq = seq self.__len__ = seq.__len__ def __contains__(self, y): for val in self.__seq: if self.__proc(val) == y: return True return False def __eq__(self, y): if len(self) != len(y): return False i = iter(self.__seq) j = iter(y) try: if self._proc(i.next()) != j.next(): return False except StopIteration: return True def __getitem__(self, y): return self.__proc(self.__seq[y]) def __getslice__(self, i, j): return mumap(self.__proc, self.__seq[i:j]) def __iter__(self): i = iter(self.__seq) while True: yield self.__proc(i.next()) def __str__(self): return ", ".join(self) x = ["a","b"] y = mumap(lambda x: x+"z", x) print y x[0]="g" print y
no subject
Date: 2006-08-28 11:05 am (UTC)class mumap: def __init__(self, proc, seq): self.__proc = proc self.__seq = seq self.__len__ = seq.__len__ def __contains__(self, y): for val in self.__seq: if self.__proc(val) == y: return True return False def __eq__(self, y): if len(self) != len(y): return False i = iter(self.__seq) j = iter(y) try: if self._proc(i.next()) != j.next(): return False except StopIteration: return True def __getitem__(self, y): return self.__proc(self.__seq[y]) def __getslice__(self, i, j): return mumap(self.__proc, self.__seq[i:j]) def __iter__(self): i = iter(self.__seq) while True: yield self.__proc(i.next()) def __str__(self): return ", ".join(self) x = ["a","b"] y = mumap(lambda x: x+"z", x) print y x[0]="g" print y