<div dir="ltr">> <span style="font-size:12.8px">As for why Haskell doesn't allow natural overloading of any function name merely by choosing another name, does anyone know?</span><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Haskell requires that overloaded functions are part of a typeclass. This isn't a big requirement - you can easily make any type into an instance of a new typeclass.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">The reason why this is important is that it ensures that the meaning and intent of the function are the same, not just a coincidental naming collision.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Peter</span></div><div><span style="font-size:12.8px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 1 June 2016 at 18:18, Silent Leaf <span dir="ltr"><<a href="mailto:silent.leaf0@gmail.com" target="_blank">silent.leaf0@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">map and set are not what? I didn't get it.<br><br>That's cool, I'll look into it!<br>As for why Haskell doesn't allow natural overloading of any function name merely by choosing another name, does anyone know?<div class="HOEnZb"><div class="h5"><br><br>Le mercredi 1 juin 2016, Alex Rozenshteyn <<a href="mailto:rpglover64@gmail.com" target="_blank">rpglover64@gmail.com</a>> a écrit :<br>> Map is (you map over the values, not the keys).<br>><br>> On Wed, Jun 1, 2016 at 1:14 AM Tony Morris <<a href="mailto:tonymorris@gmail.com" target="_blank">tonymorris@gmail.com</a>> wrote:<br>>><br>>> Map and Set are not.<br>>><br>>> On 01/06/2016 8:57 AM, "Jeffrey Brown" <<a href="mailto:jeffbrown.the@gmail.com" target="_blank">jeffbrown.the@gmail.com</a>> wrote:<br>>>><br>>>> In Haskell typeclasses are based on what you want to do with something. If, for instance, you want to be able to map over a container, you can make it an instance of class Functor -- which all the standard containers (List, Map, Set, Tree, Maybe ...) already are.<br>>>> On Tue, May 31, 2016 at 3:26 PM, Silent Leaf <<a href="mailto:silent.leaf0@gmail.com" target="_blank">silent.leaf0@gmail.com</a>> wrote:<br>>>>><br>>>>> In fact it all comes down to trying to add partially a feature absent from the Haskell language, which is the ability to distinguish values both on name *and* on type --thus allowing two variables of the same name if they have different types.<br>>>>> Honestly i don't see the drawback of that name system, but i guess there must be one otherwise it'd have been chosen by default instead of the typeblind current name system.<br>>>>><br>>>>> Le mercredi 1 juin 2016, Silent Leaf <<a href="mailto:silent.leaf0@gmail.com" target="_blank">silent.leaf0@gmail.com</a>> a écrit :<br>>>>> > All in the title. I haven't used them much, but I saw Map or Vector types were forcing the user to use qualified functions unless you want nameclash with the more basic, typically list-oriented functions.<br>>>>> > So, why not have a massive, general purpose interface so the type only can separate between containers --which would allow for cross-container polymorphism, i suppose, more easily, even though it's not necessarily the most widespread need.<br>>>>> > So, do i miss something? Is there in fact a class of that kind? If so why not?<br>>>>> > Thanks in advance! :)<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" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>>>>><br>>>><br>>>><br>>>><br>>>> --<br>>>> Jeffrey Benjamin Brown<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" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>>>><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" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>>
</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>