Hacker News new | ask | show | jobs
by evincarofautumn 3238 days 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.
1 comments

They 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.

I 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.