ジェネレータと all/any
Python 2.5 なら all/any がある。あとわざわざジェネレータを返す関数なんて定義しなくてもジェネレータ式使えばいいと思う。
ジェネレータ式と all/any を使えば
funcOR(map(odd, exampleList)) funcAND(map(odd, exampleList))
は
any(odd(e) for e in exampleList) all(odd(e) for e in exampleList)
とかける。
あとまぁ、余計なお世話だけど、
def odd(num): if (num % 2) == 1: return num else: return False def funcAND(list): for item in list: if not item: return False return list
なんか意地でも 「True」 って書きたくない理由でもあるんだろうか。
def even(num): if num % 2 == 0: return num else: return False
とか書くんだろうか。それに
bool(funcAND([])) # => False
とかまずくないのかな。