[Haskell-beginners] homogeneous value list

Salil Wadnerkar rohshall at gmail.com
Fri Mar 12 09:25:48 EST 2010


On Fri, Mar 12, 2010 at 10:21 PM, Ozgur Akgun <ozgurakgun at gmail.com> wrote:
> Another boring variant from me then.
>
> isHomogeneous xs = all (first==) xs
>     where first = head xs


Shouldn't
head xs
give an exception on an empty list?



>
> 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 at 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 at haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>
>
>
> --
> Ozgur Akgun
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>


More information about the Beginners mailing list