On Mon, Mar 12, 2012 at 3:14 PM, Kevin Clees <k.cl...@web.de> wrote:
> Now my function looks like this:
>
> tmp:: [(Int, Int)] -> Int -> (Int, Int)
> tmp [] y = (0,0)
> tmp xs y = xs !! (y-1)

Just a warning that this will still crash if the list is non-empty by
the index exceeds the length.  That's because your function is no
longer recursive, so you only catch the case where the top-level list
is empty.  The drop function doesn't crash when dropping too many
elements though, so you can do this and get a non-recursive function
that's still total:

tmp :: [(Int,Int)] -> Int -> (Int, Int)
tmp xs y = case drop (y-1) xs of
    []         -> (0,0)
    Just (x:_) -> x

-- 
Chris Smith

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to