[EMAIL PROTECTED] wrote: > def ormap(b,L): > if True in map(b,L): return True > else: return False > > Is this good enough?
No, because - (as Felipe observed) it doesn't shortcut, i. e. it always evaluates b(item) for all items in L. - it creates a temporary list - if truthvalue: return True else: return False is redundant and just plain ugly Just write return truthvalue or, when truthvalue may consume a lot of memory, return bool(truthvalue) # or: return not not truthvalue Which gives: def andmap(predicate, items): return False not in (predicate(item) for item in items) def ormap(predicate, items): return True in (predicate(items) for item in items) > andmap((lambda t: boolean(t)),L) Superfluous lambda alert: make that andmap(boolean, L) Python 2.5 will feature similar functions any() and all() which seem to have a fixed predicate == bool, though. Peter -- http://mail.python.org/mailman/listinfo/python-list