Kajahtava
- 106
- 1
By the way, about the original topic. It might not be just a human property, it might also be due to the fact that most institutions teach in the inverted order. I was just reading: http://docs.plt-scheme.org/guide/intro.html when I realized some-thing.
It's a comprehensive guide into the Scheme programming language (wonderful language if you don't know it by the way, it eats FORTRAN, but that aside), but as you read it, each new page basically tells you 'Okay, what we told you before actually wasn't completely true, it goes deeper than that.'
I mean, they start by saying you can define a function like (define (name argument) function-body), then they tell you that is actually a special syntactic sugar for (define name (lambda (argument) function-body)), and on and on and on...
As far as I know Scheme, the quintessential property of Scheme is that code = data. If (a . b) is an ordered pair and () a special constant, the last code is actually just some syntactic shorthand for:
Which is how Scheme works, the implementation basically re-aranges and transforms such data which is provided in some ad hoc form to simulate functional programming, but in reality, it's just a datastructure translator, and in such a datastructure we can basically encode a function.
If they started from the bottom up explaining all things correctly, there wouldn't be a 'the more you learn, the less you know' feeling each time you realize that things are more complex than you thought. There would be a 'the more you learn, the more you know' feeling, you don't find out that things are a little more complex than you first thought, because that never happens. Same thing with all things, they first teach you calculus before you even know what a function is. They first teach that to say 'He has ...' in Finnish is 'Sillä on ...' and later on you see it actually means 'On that/it/her/him is ...'
I had some debates about this, they called me insane on #scheme for thinking that learning it bottom-up instead of top-down is a superior method to understand the language. I learned German top-down, all kinds of phrases I learned before understand the systematics behind it. I learn Old English bottom-up, I first learned the phonology, then the grammar together with all linguistic data on the pattern behind the umlauts (which also greatly expanded my knowledge of German) and even though I had about three times as much time for German, and the latter way had a learning curve, I'm probably the only Dutch person on the planet who has less troubles reading Old English than German nowadays.
Especially in programming languages, understanding just exactly what happens before using it of course is essential to security.
It's a comprehensive guide into the Scheme programming language (wonderful language if you don't know it by the way, it eats FORTRAN, but that aside), but as you read it, each new page basically tells you 'Okay, what we told you before actually wasn't completely true, it goes deeper than that.'
I mean, they start by saying you can define a function like (define (name argument) function-body), then they tell you that is actually a special syntactic sugar for (define name (lambda (argument) function-body)), and on and on and on...
As far as I know Scheme, the quintessential property of Scheme is that code = data. If (a . b) is an ordered pair and () a special constant, the last code is actually just some syntactic shorthand for:
Code:
(define . ([I][U]name[/U][/I] . (lambda . (([I][U]argument[/U][/I] . () ) . ([I][U]function-body[/U][/I] . ())))))
If they started from the bottom up explaining all things correctly, there wouldn't be a 'the more you learn, the less you know' feeling each time you realize that things are more complex than you thought. There would be a 'the more you learn, the more you know' feeling, you don't find out that things are a little more complex than you first thought, because that never happens. Same thing with all things, they first teach you calculus before you even know what a function is. They first teach that to say 'He has ...' in Finnish is 'Sillä on ...' and later on you see it actually means 'On that/it/her/him is ...'
I had some debates about this, they called me insane on #scheme for thinking that learning it bottom-up instead of top-down is a superior method to understand the language. I learned German top-down, all kinds of phrases I learned before understand the systematics behind it. I learn Old English bottom-up, I first learned the phonology, then the grammar together with all linguistic data on the pattern behind the umlauts (which also greatly expanded my knowledge of German) and even though I had about three times as much time for German, and the latter way had a learning curve, I'm probably the only Dutch person on the planet who has less troubles reading Old English than German nowadays.
Especially in programming languages, understanding just exactly what happens before using it of course is essential to security.