True, all languages require abstractions. But it seems to me that Haskell is more abstract than most. That's it's strength, in fact. But it seems to me that it also creates something of a mismatch when trying to teach it to a 10-year-old.
True, all languages require abstractions. But it seems to me that Haskell is more abstract than most. That's it's strength, in fact. But it seems to me that it also creates something of a mismatch when trying to teach it to a 10-year-old.
Higher order functions are certainly a bit trickier, but you could explain them in specific contexts (as with 'map') without needing to deal immediately in generalizations, which probably makes it a lot easier to explain.
I'm sure there aren't truckloads of evidence of beginners having problems with those concepts.
Natural language is built around all sorts of non mathematical ad hoc concepts, yet we seem to use it just fine. Of course, it might not be the best way to talk to the computer, but it is definitely "accessible."
Nah, I've attempted some real math with a tutor, I'm quite bad at math and proofs :)
No skill or background needed with such things for Haskell.
The reason programming languages exist is to simplify the language used to describe things so they can be interpreted without too much additional context and unambiguously.