[Haskell-cafe] Producing MinimumValue

Dan Weston westondan at imageworks.com
Thu Jul 19 16:07:49 EDT 2007


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
>> >
>> >
>>
> 
> 




More information about the Haskell-Cafe mailing list