[Haskell-cafe] Is "take" behaving correctly?
Derek Elkins
derek.a.elkins at gmail.com
Tue Sep 11 22:04:11 EDT 2007
On Tue, 2007-09-11 at 16:48 -0700, Don Stewart wrote:
> byorgey:
> > On 9/11/07, Don Stewart <[1]dons at galois.com> wrote:
> >
> > byorgey:
> > > On 9/11/07, PR Stanley <[1]prstanley@[2]ntlworld.com> wrote:
> > >
> > > Hi
> > > take 1000 [1..3] still yields [1,2,3]
> > > I thought it was supposed to return an error.
> > > Any ideas?
> > > Thanks, Paul
> > >
> > > If for some reason you want a version that does return an error in
> > that
> > > situation, you could do something like the following:
> > >
> > > take' n _ | (n <= 0) = []
> > > take' n [] | (n > 0) = error "take': list too short"
> > > | otherwise = []
> > > take' n (x:xs) = x : take' (n-1) xs
> >
> > And we'd call it unsafeTake, just like unsafeFromJust and unsafeTail :-)
> >
> > -- Don
> >
> > Hmm, that's funny, I don't recall ever hearing of those functions... =)
> >
> > ooo, Don has a shiny new e-mail address!
> >
>
> And a shiny new job in a shiny new city :-)
In a new country.
More information about the Haskell-Cafe
mailing list