What I have not yet seen a coherent explanation for is what the category theory jargon buys you. I’ve done real category theory (real = for mathematicians, decades before computer scientists had heard of it), so I’m not dumb (at least not in that way) but I don’t get it.
-
-
Replying to @Meaningness @bitemyapp and
Honestly, my sense is that you're overthinking this thing about CT. It's really not nonsense. I'll give a go at how I think about it:
1 reply 0 retweets 5 likes -
Replying to @StephenPiment @Meaningness and
When you start to really exercise practical use of higher-order functions with static types, you notice that there are particular patterns of said functions that come up again and again. It has practical value, from a software engineering perspective, to capture these patterns.
3 replies 20 retweets 62 likes -
Replying to @StephenPiment @Meaningness and
Haskell has "type classes," basically collections of types with a specified interface, that make it easy to both name and render reusable these patterns.
3 replies 4 retweets 7 likes -
Replying to @StephenPiment @Meaningness and
Naming is hard, and the patterns are sufficiently abstract that most have no everyday, "intuitive" names that would not somehow be misleading.
2 replies 3 retweets 13 likes -
Replying to @StephenPiment @Meaningness and
Some patterns, such as Applicative, were given newly coined names. For others, people noticed that the pattern was close to a construct in CT, and so they took that name. Functor and Monad, are examples of the latter.
3 replies 3 retweets 10 likes -
Replying to @StephenPiment @Meaningness and
The bottom line is this: you need to know exactly zero category theory to learn Haskell well, including the type classes with names drawn from CT.
1 reply 6 retweets 28 likes -
Replying to @StephenPiment @Meaningness and
Moreover, I deny that the names are some great mistake, and the language would be better off with different ones. There ARE no better name. These really are "mathy" patterns, and any friendly sounding name would be just as arbitrary and unhelpful as the CT ones.
2 replies 6 retweets 21 likes -
Replying to @StephenPiment @bitemyapp and
OK, I think I may have actually understood this for the first time now. I had an arrow backward. I thought the point was that Haskell was implementing CT, and this was supposed to give some special powers. But >
2 replies 0 retweets 5 likes -
Replying to @Meaningness @StephenPiment and
getting arrows backwards is a very CT problem to have
1 reply 0 retweets 0 likes
I did choose that phraseology deliberately :)
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.