2533: Generic functions that take integral arguments should
work the same way as their prelude counterparts
kahl at cas.mcmaster.ca
kahl at cas.mcmaster.ca
Sat Aug 23 13:33:55 EDT 2008
Neil Mitchell <ndmitchell at gmail.com> wrote:
>
> > Hi
> >
> >> The Prelude functions drop, take, and splitAt are unfailing (never
> >> call error). This patch changes the Data.List generic versions to
> >> behave the same way. At present, they call error on negative
> >> arguments.
> >
> > I had always just assumed that take and genericTake did the same
> > thing, so had never even realised this problem existed. I'd call this
> > a bug, that needs fixing.
>
> Maybe the bug is in 'drop', 'take' and 'splitAt' and it was intended to
> fix it in 'generic' variants. Is there a good reason why to ignore
> negative number arguments? It may hide bugs.
A similar argument could be made against ``take 5 [] = []''.
A different solution would be using Nat or Natural as arguments here ---
then the conversion introduces an obvious place to check for errors.
Wolfram
More information about the Libraries
mailing list