
What wrong with my original solution? allEqual2 :: [Int] -> Bool allEqual2 xs = length xs == length (filter isEqual xs) where isEqual n = (head xs) == n It looks simpler to me Dan Weston wrote:
The real lesson here is that
1) no problem is "too easy" to cheat good software engineering practices. 2) no solution not accompanied by at least a QuickCheck result should be viewed with suspicion
I obviously have to go back and relearn these lessons.
Dan
Jason Dagit wrote:
On 7/19/07, Jason Dagit
wrote: On 7/19/07, Dan Weston
wrote: Oops, you got me. I didn't even look at the third line, I just took it from the previous post. My first instinct actually was to write:
allEqual x@(h:t) = and (zipWith (==) x t)
I prefer,
allEqual [] = True allEqual xs = foldl1 (==) xs
But, unfortunately, it's not a one liner like yours (unless you allow allEqual [] = undefined).
Oh and silly me, that only works for [Bool].
I'll hushup :)
Jason
but I don't think that zipWith is allowed in the question.
Dan
Antoine Latter wrote:
On 7/19/07, Dan Weston
wrote: I would define:
allEqual [] = True allEqual [_] = True allEqual (x1:x2:xs) = (x1 == x2) && allEqual xs
What does this function do for "allEqual [1, 1, 2]" ?
Antoine _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- View this message in context: http://www.nabble.com/Producing-MinimumValue-tf4106379.html#a11697071 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.