[Haskell-cafe] Producing MinimumValue

Alexteslin alexteslin at yahoo.co.uk
Thu Jul 19 16:27:25 EDT 2007


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 <dagit at codersbase.com> wrote:
>>> On 7/19/07, Dan Weston <westondan at imageworks.com> 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 <westondan at imageworks.com> 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 at haskell.org
>>> > > http://www.haskell.org/mailman/listinfo/haskell-cafe
>>> > >
>>> > >
>>> >
>>> >
>>> > _______________________________________________
>>> > Haskell-Cafe mailing list
>>> > Haskell-Cafe at haskell.org
>>> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>>> >
>>> >
>>>
>> 
>> 
> 
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at 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.



More information about the Haskell-Cafe mailing list