<div dir="ltr">This code<div><br></div><div><font face="monospace">myTakePM :: Int -> [a] -> [a]<br>myTakePM 0 _ = []<br>myTakePM n (x:xs) = x : myTakePM (n-1) xs</font><br></div><div><br></div><div>is bad because it allows </div><div><br></div><div><font face="monospace">myTakePM 4 [1,2,3]<br></font></div><div><font face="monospace"> [1,2,3*** Exception: <interactive>:(395,1)-(396,41): Non-exhaustive patterns in function myTakePM</font><br></div><div><br></div><div>I knew it would not work, but why is it calling this essentially a partial function? How does it know this? Again, I expected an error, but what is this <font face="monospace">Non-exhaustive patterns in function myTakePM</font> saying? Or, said another way, what exactly is non-exhaustive about this?</div><div><div>--<br></div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>⨽<br></div>Lawrence Bottorff<div>Grand Marais, MN, USA</div><div><a href="mailto:borgauf@gmail.com" target="_blank">borgauf@gmail.com</a></div></div></div></div></div>