I created my own drop' function like this:
drop' :: Int -> [a] -> [a]
drop' 0 xs = xs
drop' n [] = []
drop' n (x:xs) = drop' (n - 1) xs
But in the Haskell book I am reading it is written like this:
drop' :: Int -> [a] -> [a]
drop' 0 xs = xs
drop' (n + 1) [] = []
drop' (n + 1) (x:xs) = drop' n xs
My version seems to work but I am concerned about my third line (drop' n [] = []). Is that a problem?
Why does this author use n + 1 as a parameter as opposed to n - 1 like I do in body?
Or does it make no difference?