Two mathematicians are discussing a theorem. The first mathematician says that the theorem is trivial. He then proceeds with two hours of exposition. At the end of the explanation, the second mathematician agrees that the theorem is indeed trivial.
Two mathematicians are discussing a theorem. The first mathematician says that the theorem is trivial. He then proceeds with two hours of exposition. At the end of the explanation, the second mathematician agrees that the theorem is indeed trivial.
I went through a similar phase with math, struggled with basic algebra for years, then at some point it all clicked into place and I unintentionally ended up skipping all high school algebra to get to early calculus.
It makes it really hard when helping other people through those early concepts (like pointers), because "keep working and at some point it'll just click for you" isn't very convincing.
I’ve started to call it paying the “time tax” or “staring tax”, I have to just review tough concepts (code, concept, leetcode solution, math problem) for a long while before it eventually clicks.
Haha, monads still haven't clicked for me despite knowing F# and Clojure pretty well. I think of them as "functors that you can flatten" (and functors are "things you can `map` over", and `map` is "a structure-preserving transformation"). I know monads syntactically, but not intuitively. Despite this I still manage to work with monads pretty well - sometimes rote knowledge is enough. Maybe if my work involved discovering new monads I'd feel like I'd know them better. (I just see the same option/list/result(ish)/generator-style monads over and over.)
A C programmer with no experience in concatenative or, especially, functional languages will have little chance of understanding code written in Forth or Haskell. They will have to start at the bottom of the learning curve.
The differences between languages aren't just skin-deep. Same goes for the design patterns in those languages. Haskell's applicatives have no analog in C, for instance.
You're not wrong, but those don't crack the top-10 of in-demand languages. Enough functional paradigms have also crept into more popular languages that you wouldn't be completely lost.