<div dir="ltr"><div>If you want to know how to pronounce an infix, GHCI and Hackage can very often solve the problem for you. For instance:<br></div><div><br></div><div> > :i <$></div><div> (<$>) :: Functor f => (a -> b) -> f a -> f b</div><div> -- Defined in ‘Data.Functor’</div><div> infixl 4 <$></div><div> > </div><div><br></div><div>If you then lookup Data.Functor on Hackage, you'll find in the description of <$> "An infix synonym for fmap." Even if there's no comment provided, you can from there view source; often you'll find a one-word definition like "(>>=) = bind".</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 26, 2016 at 1:55 AM, Mike Pentney <span dir="ltr"><<a href="mailto:mike.pentney@physics.org" target="_blank">mike.pentney@physics.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As a newbie, something I dislike about Haskell is the use of infix operators like <||> which are unpronouncable and therefore (if you don't happen to know the notation the symbol is based on) are more or less meaningless.<br>
<br>
And Haskellers often seem to prefer 1 and 2 character variable names, which again convey little or no information.<br>
<br>
And don't get me started on point-free code...!<br>
<br>
N.B. I am not trying to start a flame war, these are just comments from my experience of trying to get beyond text-book examples and start using Haskell libraries and trying to learn from open source code. In general I find idiomatic Haskell hard to understand, and for me this is a barrier to using Haskell for real projects. Maybe someday I'll have learnt enough to get past this problem, but as the language and libraries seem to evolve quickly, I have my doubts...<span class=""><br>
<br>
<br>
On 25/02/16 19:19, Jeffrey Brown wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
Something I like about functional programming is how it interfaces with natural language.<br>
Haskell, somehow to a greater extent than other languages, encourages me to divide functions<br>
into one or two-liners. Each has a type signature that means something in English. Further, each<br>
gives you the opportunity to choose a good name for the function and its arguments. After doing<br>
those things, the function is much easier to write, and much easier to read -- so much so that<br>
often you don't have to read the function body at all, just the type signature, function name<br>
and argument names.<br>
<br>
On Thu, Feb 25, 2016 at 8:17 AM, Dudley Brooks <<a href="mailto:dbrooks@runforyourlife.org" target="_blank">dbrooks@runforyourlife.org</a><br></span><div><div class="h5">
<mailto:<a href="mailto:dbrooks@runforyourlife.org" target="_blank">dbrooks@runforyourlife.org</a>>> wrote:<br>
<br>
Ages and ages ago I saw this advice about programming:<br>
<br>
Q: "What's the best language for a programmer to know?"<br>
<br>
A: "English" (or whatever your native language is)<br>
<br>
-- Dudley<br>
<br>
<br>
On 2/24/16 4:03 PM, Dennis Raddle wrote:<br>
<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
This is more about programming in general than Haskell, although Haskellers probably know<br>
it well.<br>
<br>
I don't claim to have expert knowledge on this, but I'm gradually getting better at it.<br>
<br>
When I set out to write a program, or refactor a program, or modify a program, it helps to<br>
set out my thinking in a clear way. And how I make it clear is to document my thoughts.<br>
<br>
An outline is one good way to organize thoughts and is probably my main tool. But good<br>
English prose is also helpful.<br>
<br>
The key factor is "editing." In what sense do I mean that? Good writers do it, and the<br>
Haskell documentation does it. I mean (1) brevity and (2) good flow. To achieve brevity,<br>
you must think about the essence of each statement and trim away the unnecessary stuff.<br>
Good flow refers to how the document builds up and modifies your concepts as you read it.<br>
A document can actually mirror an effective learning process, or influence and change your<br>
process.<br>
<br>
I work with my documentation, making several editing passes. By the time I'm done, I am in<br>
a great position to write a concise and flexible program.<br>
<br>
It's interesting that not only is Haskell a concise language, but the Haskell library<br>
documentation is concise. Contrast that with the Python documentation which often wanders<br>
about into areas that are irrelevant--it could easily be cut into one third its present size.<br>
<br>
Mike<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Beginners mailing list<br></div></div>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a> <mailto:<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>
<br>
<br>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a> <mailto:<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a>><span class=""><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>
<br>
<br>
<br>
--<br>
Jeffrey Benjamin Brown<br>
<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" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>
<br>
</span></blockquote><div class="HOEnZb"><div class="h5">
_______________________________________________<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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Jeffrey Benjamin Brown</div></div>
</div>