
20 Sep
2007
20 Sep
'07
11:02 p.m.
On Fri, Sep 21, 2007 at 03:48:25AM +0100, PR Stanley wrote:
Hi or = foldl (||) False and = foldl (&&) True I can understand the rationale for the accumulator value - True && [] where [] = True and True || [] where [] = False Other than the practical convenience is there a reason for having the empty list in and and or equating to True and False? Thanks, Paul
It makes and and or into monoid morphisms. and (xs ++ ys) = and xs && and ys or (xs ++ ys) = or xs || or ys (PS are you sure you meant foldl? the standard definitons use foldr) Stefan