3 ms·
We often forget how much assumed knowledge (and accepted knowledge) went into learning OOP. Turing Machine and Lambda Calculus are two entry points into comput
by yomly 6y ago
We often forget how much assumed knowledge (and accepted knowledge) went into learning OOP.
Turing Machine and Lambda Calculus are two entry points into computational thinking, is it really so alarming that if you've only learned one that trying to learn the other will make you feel like a beginner all over again?
- Izkata 6y agoY'know what, maybe looking at it like that is actually one of the problems: We don't learn our first imperative language(s) by way of Turing machines. That theory-level understanding comes much later, after we have a handle on the language itself. When first learning, the most common abstractions are variations on "a list of steps" - like an instruction manual or To-do list - without touching on memory. I wonder if there's some sort of similar abstraction here that could be used instead, for the just-getting-started stage...
- yomly 6y agoExcel function pipelines which take inputs to outputs. People build wonderfully useful things in Excel using its standard library of spreadsheet functions. They are all referentially transparent. In imperative steps of code, time flows down your code. In functional code your flow of time is each function application.
- goto11 6y agoThis is what I call haskellsplaining - explaining concept from first principles and mathematical definitions rather than from how they are used and what they are useful for.