Subject: Re: Lisp's future From: Erik Naggum <erik@naggum.no> Date: 29 Jan 2004 10:17:56 +0000 Newsgroups: comp.lang.lisp Message-ID: <3284360276767685KL2065E@naggum.no> * Tuang | Would someone be willing to describe these advantages in a bit more | detail? As a newbie to both Scheme and CL, I too find CL's #' a | hassle compared to the Scheme way of treating an expression that | evaluates to a function just the same as a function name, and not | having to think about the rules for when to quote or sharp-quote or | funcall-sharp-quote.... | | Of course having to think about the rules for a while until you | internalise them is standard in programming, and I don't care as long | as any additional comnplexity buys me proportional (or more) | advantage. This is an important point, frequently overlooked by experts. To become an expert, you have to do something often enough that you no longer know why you do it, you just know what do to, immediately, but there are no /rules/. The novice often has to learn rules to follow, because that is believed to be the best didactic presentation of the expertise, but pedagogy is not exactly a science. The more we know about how people become competent and then experts, we realize that one must leave the rules stage as soon as possible, but no sooner, of course :). Going from rules to expertise is not a well-understood process that can be taught, however. It appears to defy explanation to those who have not already understood it. Common Lisp does not have «rules» that are easy to learn. Instead, it is extremely expert-friendly, and those who want to become experts find it easy to do so because they can reason their way around, while those who only want to become competent, will be endlessly frustrated by the lack of comprehensive tables of results of the reasoning that they have no interest in doing on their own. Some people have expressed the notion here that mathematics is also no more than a bunch of rules, or maybe it was just one person. Anyway, the difference between rules and reasoning is like the different view of functions. One view is that a function is a mapping from one set to another set, and you can enumerate both sets if you feel like it, or consult a table or a computing device. This view very effectively prevents people from learning the other view. The other view is that a function is an expression of an abstract relationship and that one can obtain a mapping through a series of intermediate steps on demand, but it is the abstract relationship that is important. As long as you obsess about the values and mappings, you will never grasp the purpose of the function. I have watched kids who have been taught by teachers to compute meaningless functional mappings believe that mathematics is merely arithmetic and rote learning of tables of mappings, but who have then been taught to /reason/ about the abstract relationships that are expressed by the functions, and they light up like fireworks. Common Lisp is just as much rules as mathematics is arithmetic. If you set out to internalize rules, you /will/ miss the big picture. | Then I could move it from the "costs of CL" to the "benefits of CL" | category in my mind. ;-) I think the error is in determining something to be a cost too early. -- Erik Naggum | Oslo, Norway 2004-029 Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.