Humor me here, I have no idea what I'm doing.
The simple algebraic types Either, (,), -> correspond to the functions +, *, ^. Is it possible to construct types that correspond to - or /?
For example suppose we wanted to find a type that corresponds to 1 - a:D(a) = 1 - a D(a) + a = 1 D(a) * D(a) + a * D(a) = D(a) type D a = Either (D a, D a) (a, D a)
This seems to correspond to some sort of tree structure. Does this have relevance or meaning?submitted by stonegrizzly
[link] [6 comments]
I have been on the fence about learning Category Theory more than once. On the one hand the promise of a generalized view on many concepts in mathematics seems attractive and I have hopes that it would help me see connections which I would otherwise miss. On the other hand it does seem fairly abstract (duh) and I am not sure what insights related to programming / designing abstractions would result from it.
What benefits have you reaped from learning CT?
I am thinking about working through Awodey's book. What would you suggest (in addition / instead) to maximize the value of CT for a Haskell programmer?
EDIT: I'd like to thank everyone for the answers... certainly some interesting points! I am not fully convinced either way, but in some way I think I'll have to learn it at some point to figure out my answer...
EDIT2: So I've now watched the video recommended by /u/slacket and must say this was quite helpful in answering the question. In the talk Prof. Gibbons hints at how concepts from CT help one to understand folds, unfolds and bifunctors. If this is a preview of things one might be able to understand thanks to CT, then I want to know it! Thanks!submitted by paulkoer
[link] [10 comments]