
12 Mar
2012
12 Mar
'12
7:24 p.m.
On Mon, Mar 12, 2012 at 3:14 PM, Kevin Clees
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