This can be suitably applied to Python with the use of Higher Order
Functions, though. It's not quite the Ruby version because Python
allows you to use functions as first-class objects, complicating the
All-You-Can-Do-Is-Pass-A-Message philosophy. This is my 5-minute
implementation:
class HigherOrderList(list):
def do(self, func):
return HigherOrderList(each(self, func))
def where(self, pred):
return HigherOrderList(mass_test(self, pred))
def mass_test(iterable, pred):
for item in iterable:
if pred(item):
yield item
def each(iterable, method):
for item in iterable:
yield method(item)
--
http://mail.python.org/mailman/listinfo/python-list