[Haskell-beginners] general observation about programming
Mike Pentney
mike.pentney at physics.org
Fri Feb 26 09:55:22 UTC 2016
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.
And Haskellers often seem to prefer 1 and 2 character variable names, which again convey little
or no information.
And don't get me started on point-free code...!
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...
On 25/02/16 19:19, Jeffrey Brown wrote:
> Something I like about functional programming is how it interfaces with natural language.
> Haskell, somehow to a greater extent than other languages, encourages me to divide functions
> into one or two-liners. Each has a type signature that means something in English. Further, each
> gives you the opportunity to choose a good name for the function and its arguments. After doing
> those things, the function is much easier to write, and much easier to read -- so much so that
> often you don't have to read the function body at all, just the type signature, function name
> and argument names.
>
> On Thu, Feb 25, 2016 at 8:17 AM, Dudley Brooks <dbrooks at runforyourlife.org
> <mailto:dbrooks at runforyourlife.org>> wrote:
>
> Ages and ages ago I saw this advice about programming:
>
> Q: "What's the best language for a programmer to know?"
>
> A: "English" (or whatever your native language is)
>
> -- Dudley
>
>
> On 2/24/16 4:03 PM, Dennis Raddle wrote:
>
>> This is more about programming in general than Haskell, although Haskellers probably know
>> it well.
>>
>> I don't claim to have expert knowledge on this, but I'm gradually getting better at it.
>>
>> When I set out to write a program, or refactor a program, or modify a program, it helps to
>> set out my thinking in a clear way. And how I make it clear is to document my thoughts.
>>
>> An outline is one good way to organize thoughts and is probably my main tool. But good
>> English prose is also helpful.
>>
>> The key factor is "editing." In what sense do I mean that? Good writers do it, and the
>> Haskell documentation does it. I mean (1) brevity and (2) good flow. To achieve brevity,
>> you must think about the essence of each statement and trim away the unnecessary stuff.
>> Good flow refers to how the document builds up and modifies your concepts as you read it.
>> A document can actually mirror an effective learning process, or influence and change your
>> process.
>>
>> I work with my documentation, making several editing passes. By the time I'm done, I am in
>> a great position to write a concise and flexible program.
>>
>> It's interesting that not only is Haskell a concise language, but the Haskell library
>> documentation is concise. Contrast that with the Python documentation which often wanders
>> about into areas that are irrelevant--it could easily be cut into one third its present size.
>>
>> Mike
>>
>>
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org <mailto:Beginners at haskell.org>
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org <mailto:Beginners at haskell.org>
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
>
>
> --
> Jeffrey Benjamin Brown
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
More information about the Beginners
mailing list