What's the deal with category theory on HN? Seriously, how is it interesting or relevant without introducing it along with concepts from fields in which it is of main use (e.g. (homological) algebra and algebraic toplogy)? I don't think I'd be able to appreciate, or even understand CT without having a thorough understanding of concepts it tries to generalize -- hell, I do have trouble to consider it useful even with it. Since I do not believe that HN us full of mathematicians (even though there are a few) researching algebraic topology or homological algebra, I wonder who reads and posts such things here.
Category theory is much beloved of functional programming researchers, at least in my computer science department, mostly as a way of analysing and conceptualising type theory.
For example, one of my friends is working on showing equivalences between I/O in Haskell (purely functional) and Lucid (demand-driven dataflow). Category theory shows a neat relationship between the models and a way to move between them.
Hacker news is for Hackers. Programming languages are heavily influenced by Category Theory. Hackers use programming languages and love to learn new ways to become better hackers. Look up the reason why pg called his incubator YCombinator. Its a complex programming theory based in lambda calculus. http://en.wikipedia.org/wiki/Fixed_point_combinator
You know, maybe the average HNer will not get 1ct of benefit from reading 1paper on category theory; but maybe they can get .1ct from reading .1paper. The functor pattern is pretty cool. It's easy to use in most languages (Java and C++ included), it's pretty powerful, maybe it gets people thinking a certain way. Maybe someone will read the first bit of this paper and think, "Huh, I heard monads are from category theory too. Don't know what those are, but the first 20 pages of this weren't too bad". Don't complain about people posting useless things; clearly someone voted for it.
Math isn't ever "useful". Math only generates more math. Math is measured in ideas inspired.
"This guide explored the theoretical backgrounds of Haskell’s IO monad. On the way we have seen functors, natural transformations, and finally monads. All these purely theoretic concepts appeared to have a quite practical correspondence in the Haskell programming language, as emphasized by the according examples. It should be clear now, how the IO monad is used to pass around the state of the world, without allowing the programmer to access it “too much”.
For my money a good introduction to CT must have compelling examples, which I don't quite see here. To understand basic category theory this is a fantastic introduction http://www.mscs.dal.ca/~selinger/papers.html#graphical . It is not meant to be an introduction to CT but it's basic CT with some amazing examples.
[+] [-] xyzzyz|14 years ago|reply
[+] [-] Robin_Message|14 years ago|reply
For example, one of my friends is working on showing equivalences between I/O in Haskell (purely functional) and Lucid (demand-driven dataflow). Category theory shows a neat relationship between the models and a way to move between them.
[+] [-] peregrine|14 years ago|reply
[+] [-] pavpanchekha|14 years ago|reply
Math isn't ever "useful". Math only generates more math. Math is measured in ideas inspired.
[+] [-] turnersr|14 years ago|reply
"This guide explored the theoretical backgrounds of Haskell’s IO monad. On the way we have seen functors, natural transformations, and finally monads. All these purely theoretic concepts appeared to have a quite practical correspondence in the Haskell programming language, as emphasized by the according examples. It should be clear now, how the IO monad is used to pass around the state of the world, without allowing the programmer to access it “too much”.
http://stefan-klinger.de/files/monadGuide.pdf
[+] [-] danthemilkman|14 years ago|reply