[Haskell-cafe] Is "take" behaving correctly?

Brent Yorgey byorgey at gmail.com
Tue Sep 11 19:45:46 EDT 2007


On 9/11/07, Don Stewart <dons at galois.com> wrote:
>
> byorgey:
> >    On 9/11/07, PR Stanley <[1]prstanley at 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!

-Brent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20070911/bc1a9c1f/attachment.htm


More information about the Haskell-Cafe mailing list