<div dir="ltr">There was some real controversy over this change. People were strongly opposed to the change for exactly the reason you gave (among others), that it is hard for beginners. However, there was enough momentum that it went through, and now things like fmap and length work on a wide variety of data types. You can google ftp haskell controversy for more info.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 12, 2015 at 8:48 AM, Dennis Raddle <span dir="ltr"><<a href="mailto:dennis.raddle@gmail.com" target="_blank">dennis.raddle@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Speaking of lists and history, I noticed that a lot of library functions which were formerly defined over lists (when I first looked at Haskell six years ago) are now defined on Traversable, which makes it a lot harder for beginners to read the documentation. I have been playing with Haskell for five years, but not much, so I'm still a beginner. I just mentally substitute lists when I see Traversable. <div><br></div><div>I only really use lists and Maybe, as far as instances of the typeclasses go. That's only two types, but a lot to learn!</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>D</div><div><br></div><div><br></div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 12, 2015 at 5:42 AM, akash g <span dir="ltr"><<a href="mailto:akaberto@gmail.com" target="_blank">akaberto@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><a href="http://stackoverflow.com/questions/7463500/why-do-we-have-map-fmap-and-liftm" target="_blank">http://stackoverflow.com/questions/7463500/why-do-we-have-map-fmap-and-liftm</a> have very good answers on this.<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 12, 2015 at 7:11 PM, akash g <span dir="ltr"><<a href="mailto:akaberto@gmail.com" target="_blank">akaberto@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">map is specialized for lists while fmap is for any functors. Its presence is historical. Prefer fmap over map.<br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Thu, Nov 12, 2015 at 7:03 PM, Dennis Raddle <span dir="ltr"><<a href="mailto:dennis.raddle@gmail.com" target="_blank">dennis.raddle@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Just after I posted that question, I started driving home, and on the drive I thought of your answer. I think I'm starting to ask the right questions when I'm programming in Haskell. Like redundancy and bloat is a sure sign that a more witty expression is available, and that I should consult the typeclasses. <div><br></div><div>Second, I am not used to the implications of laziness, so it took me a while to hit on your solution because I keep thinking you have to map something over the whole list, and that if you only want to map it over the head, you are stuck. </div><div><br></div><div>You can use 'map' also, instead of 'fmap', right? Is 'map' just 'fmap' for lists?</div><span><font color="#888888"><div><br></div><div>D</div><div><br></div></font></span></div>
<br></div></div><span>_______________________________________________<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>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div><br>_______________________________________________<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>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">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>
<br></blockquote></div><br></div>