<div dir="ltr">The function as written assumes that if the first argument is not zero, then the second argument is nonempty. But if you try to take5 from a list of length 2 that way, you'll eventually be asking for `myTake 3 []`, which there's no way to evaluate.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 12, 2021 at 12:14 AM Galaxy Being <<a href="mailto:borgauf@gmail.com">borgauf@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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"><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>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Jeff Brown | Jeffrey Benjamin Brown</div><div dir="ltr"><a href="https://www.linkedin.com/in/jeffreybenjaminbrown" style="font-size:12.8px" target="_blank">LinkedIn</a><span style="font-size:12.8px">   </span><span style="font-size:12.8px">|</span><span style="font-size:12.8px">   </span><a href="https://github.com/jeffreybenjaminbrown" style="font-size:12.8px" target="_blank">Github</a>   |   <a href="https://twitter.com/carelogic" target="_blank">Twitter</a>  |  <a href="https://www.facebook.com/mejeff.younotjeff" style="font-size:12.8px" target="_blank">Facebook</a></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>