Em Ter, 2006-03-14 às 04:23 -0800, [EMAIL PROTECTED] escreveu:
> def andmap(b,L):
>   if False in map(b,L): return False
>   else: return True
> 
> def ormap(b,L):
>   if True in map(b,L): return True
>   else: return False
> 
> Is this good enough?

The problem is that it will evaluate all possibilities needlessly. Try
(not tested and 2.4-only):

def andmap(func, objs):
        for boolean in (func(obj) for obj in objs):
                if not boolean:
                        return False
        return True

def ormap(func, objs):
        for boolean in (func(obj) for obj in objs):
                if boolean:
                        return True
        return False

-- 
"Quem excele em empregar a força militar subjulga os exércitos dos
outros povos sem travar batalha, toma cidades fortificadas dos outros
povos sem as atacar e destrói os estados dos outros povos sem lutas
prolongadas. Deve lutar sob o Céu com o propósito primordial da
'preservação'. Desse modo suas armas não se embotarão, e os ganhos
poderão ser preservados. Essa é a estratégia para planejar ofensivas."

  -- Sun Tzu, em "A arte da guerra"

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to