3 ms·
I agree with your sentiments about this style of article, but I’d say recursion is simple—the problem is that “simple” doesn’t mean “easy”. A lot of programming
by evincarofautumn 9y ago
I agree with your sentiments about this style of article, but I’d say recursion is simple—the problem is that “simple” doesn’t mean “easy”. A lot of programming & math concepts were like this for me when I was first exposed to them—amazingly simple and clearly useful after they “clicked”, frustrating and inscrutable before.
- chii 9y agoThey should've called it fundamental, rather than simple. Or, axiomatic. It feels bad when a topic you find hard to understand is called simple, and actively discourages those with less self confidence from approaching it.
- evincarofautumn 9y agoI suppose so, yeah. I was thinking of things like monads. They’re a class of type constructors with a couple of associated functions (unit & bind or unit & join). The definition is undoubtedly simple, as well as fundamental in Haskell. But understanding how to use them, what to use them for, how to tell whether & why a type admits monad/applicative/functor instances, &c., are still difficult things for a lot of people, because these are unfamiliar abstractions. Moreover, they take advantage of unfamiliar features like higher-kinded types, so you can’t even explain them by offering a translation to other languages, because most other languages lack the ability to adequately express them. For myself, I think of learning as “discovering simplicity”. I know I understand something when it finally feels as simple as it really is.