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
signature.asc
Description: Digital signature
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
