Another boring variant from me then.

isHomogeneous xs = all (first==) xs
    where first = head xs

Guess what? You do not need the special case for [], because "all _ [] = True" allways. So if the list is empty, it won't even try evaluating "first".

Cheers,

On 12 March 2010 14:08, Daniel Fischer <daniel.is.fischer@web.de> wrote:
Am Freitag 12 März 2010 14:41:11 schrieb Daniel Fischer:
>
> isHomogeneous :: Eq a => [a] -> Bool
> isHomogeneous [] = True
> isHomogeneous (x:xs) = all (== x) xs
>

Variant, getting rid of the special case for an empty list:

isHomogeneous :: Eq a => [a] -> Bool
isHomogeneous xs = and (zipWith (==) xs (drop 1 xs))
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners



--
Ozgur Akgun