
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?

On 13-10-26 08:34 AM, swrangsar basumatary wrote:
i know what is a monad now. but i still have problems understanding the continuation monad and arrows.
When one day you become interested in a problem that can be suitably solved by the continuation monad, you will understand the continuation monad. Ditto for arrows.
Also is it necessary to know category theory to be a good haskell programmer?
I will use a parable. Does a successful businessman know economics theory? (Allow me to define "successful businessman" as "maximizes profit under constraints from reality, laws, culture, and even a bit of morality".) That depends on what is meant by "know economics theory". To some people, it requires knowing the words "maximize profit under constraints". Then the businessman probably doesn't "know economics theory" --- he/she probably doesn't know what that idea is called. To some other people, it means knowing the idea, not necessarily the wording, of maximizing profit under constraints. Then the businessman not only knows that idea, he/she is also implementing it, and implementing it right.

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
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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Sat, Oct 26, 2013 at 7:34 PM, swrangsar basumatary
Also is it necessary to know category theory to be a good haskell programmer?
If you haven't already, you're way better off learning classical PL foundations with an FP emphasis, e.g. http://pages.cs.wisc.edu/~horwitz/CS704-NOTES/ -- Kim-Ee

thanks, people
On Mon, Oct 28, 2013 at 6:08 AM, Kim-Ee Yeoh
On Sat, Oct 26, 2013 at 7:34 PM, swrangsar basumatary < swrangsarb@gmail.com> wrote:
Also is it necessary to know category theory to be a good haskell programmer?
If you haven't already, you're way better off learning classical PL foundations with an FP emphasis, e.g.
http://pages.cs.wisc.edu/~horwitz/CS704-NOTES/
-- Kim-Ee
participants (4)
-
Albert Y. C. Lai
-
Kim-Ee Yeoh
-
Kristopher Micinski
-
swrangsar basumatary