[Haskell-cafe] about learning haskell

Kristopher Micinski krismicinski at gmail.com
Sat Oct 26 18:57:31 UTC 2013


I think most people would agree that knowing category theory doesn't
necessarily make you a good haskell programmer.  What makes you a
better programmer is more experience, better ways to think, etc...
Because of this, a mathematician who knows category theory but has
never programmed would not find that experience very useful to writing
real programs.  Instead, you need experience thinking about problems
from an algorithmic and implementation driven perspective, which isn't
necessarily something mathematicians are bad at, but programming
experience definitely highlights a different set of muscles.

What category theory gives you is a set of fundamental tools to think
about abstractions, and this may help you get a higher level view of a
problem in a principled manner more quickly.  In practice, most
Haskell programmers write some code, learn some theory (relevant to
that code, for example, what a monoid is), write more code, learn more
theory, refine and repeat.

Brent Yorgey's [Typeclassopedia](http://www.haskell.org/haskellwiki/Typeclassopedia)
is a good way to learn a bit of both.  It highlights some practical
haskell artifacts which are influenced by category theory.  In
learning category theory, it seems to be the case that you need
copious examples before you understand anything (otherwise you'll be
reading definition after definition saying "why does any of this
matter?" to yourself), and in writing more Haskell code, you'll gain
experience allowing you to make those connections.

Kris

On Sat, Oct 26, 2013 at 8:34 AM, swrangsar basumatary
<swrangsarb at gmail.com> wrote:
> i know what is a monad now. but i still have problems understanding the
> continuation monad and arrows.
>
> Also is it necessary to know category theory to be a good haskell
> programmer?
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list