Erik Naggum wrote: > it seems you stick to your non-indentation line with something other > than willingness to listen to good advice.
Hey, this is becoming a sport. I thought I'm here in a good group with big people from the Lisp community, where I can learn much, and find myself in this wrestling ring. I didn't stick at all, I sent 3 lines and 4 lines of not indented code, which everybody of you big guys could read easily, read carefully your replies, agreeing in part, sometimes remaining more doubtful, and thought in the last two days we could stop, since positions became clear enough. Read the end of my first message ("with no intention of flame") - I'm not the world danger for the Lisp community.
I shall take much time this summer to learn Lisp well and thought to seek more useful advice from the list.
I'll reply now to some points, but I was more interested in understanding here what I cannot find in the books, so perhaps one should conclude this indentation thread. For example there were also some mistakes in all that. Anyway, I'm a little surprised, how important indendation seems to be. I think there is much more in Lisp than indentation.
>> More specifically in Lisp I try to memorize (and to teach to >> memorize) the shapes which can appear. > you _teach_ Lisp, too? those of us who think that Lisp's image among > young programmers suffers from bad teachers just got a very unwelcome > confirmation of our worst fears.
Make an agreement - I forget what you said and you forget what I say in the next lines. Do you really fear that my students will spread from Ferrara over the continents and ruin Lisp worldwide? How can you call someone you don't know a bad teacher? Do you know that in many universities they teach Pascal? I did that 13 years ago. Anyway, I taught 7 hours of Lisp at the end of the C/C++ course and it was a little success. Young girls seem to be very able to close parentheses, as opposed to your young programmers. Next year I'll teach a full year course on Lisp, comp.lang.lisp permitting and helping I thought. I have some good books here and collected many articles to read from the web, however, so in case of disaster I shall organize some Robinson Lisp. But it's not my preferred choice.
Also, you missed the main point, when I wrote that beginners should memorizes the structures which appear. I think that it is really important to create an image of little typical pieces of code in their brain, which they then recognize in more general cases. This means carefully reading the code, creating by yourself mentally a sort of stack of dependencies which substitutes the indentation.
I'm a mathematician by origin and know very well how disturbing unusual notation can be. Writing X: f ---> f for a function instead of f: X ---> X is an innocent change, but makes already things uncomfortable. But if one knows exactly what one is speaking about, it becomes a minor difficulty. Notation in mathematics is very important, but understanding much more. So I'm trying to understand exactly what is going on in Lisp, because as a teacher I have to explain well also those things, which a programmer maybe deals only by experiment or experience. These little details, which some of you are knowledgeable about, I not, are surely much more important than indentation.
>> For example: "A do has the following structure ... Therefore, when you >> see a do, look first at the assignments, then at the break-condition and >> the result, then at the single instructions." And so on. In my opinion >> this is a good training, and after little time one has no more need to >> study the indentations, which also takes time and distracts. > this sounds like a struggling beginner's view, a beginner who struggles > because he's doing something wrong and don't want to change his ways.
Here I cannot follow your reply. It's an important point. What is wrong with it? I'm a beginner - I studied Lisp two years ago, mainly in a good older German book by Mayer, which explains rather well the underlying data structures, but thought then it were too difficult for my classes, and changed opinion only this year, because it seemed easy for them. The students are beginners too. So I think it's o.k. that they learn how the building blocks in Lisp look.
And why do you think that I don't want to change my opinions? When I learn something, I change my opinions very often, each time I discover some new aspect.
>> in fundamental mode), I verify the balance of parentheses with the editor. > "always in fundamental mode"? there should be a law against that.
Sorry, that's my private problem. I'm very quick in typewriting and can indent by myself. During the last 1-3 years I wrote much in Python, where indentation is obligatory - that's not the point. I'm maintaining a bibliography with over 3500 files and a rather big Web server, using only Emacs in fundamental mode, and it takes me very little time. I like Emacs because it's so powerful, but if one prescribes too much one looses some of that power.
> this often happens to people who don't engage in introspection.
This is pure wrestling. I thought about it before, I read all your terrific mails, I shall think about again, so what about introspection? I appreciated most the letters by Gareth McCaughan (British cool, I like Sherlock Holmes - or Scottish? another flame arriving ...) and Pierre Mai, which were technical. Other ones I found rather emotional. Fortunately we are only writing about Lisp. More generally the point of view, that someone who doesn't follow blindly any uniformization lacks introspection, should be rather dangerous. Indentation is not the problem, I can indent how you want, but I'm thinking about intolerance now.
> lazy people who don't engage in introspection
Sorry, lazy university teachers teach Pascal.
> never learned to use the power of Emacs
Is this your technique of discussion? I appreciated much also some of your advices on my Lisp questions before, but this seems to be not your field.
I learned everything I need of Emacs and have an .emacs file full of little utilities. I don't need the special modes because I type so fast. How can you judge a person you don't know?
> I'm frankly amazed that you think _others_ are stubborn.
Not at all. Maybe I think it now.
> here's my suggestion: use PPRINT on your forms to see how Common Lisp is > most commonly formatted.
Beautiful. I shall from now on indent my code in my questions, and if I should forget, you use print. I tried it, it works well.
> (defun number-list (from to &optional (step 1)) > (do ((element from (+ element step)) (list nil)) > ((> element to) (nreverse list)) > (push element list))) > I would expect a seasoned Lisp programmer not to write this as a function
Now you are critizing non-seasoned Paul Graham.
> rather just write (loop for n from <from> to <to> collect n)
Give me some time please. I find loop rather complicated and it is a long chapter in Steele. I shall read that later, because it is also interesting, but before there are many other points I want to master. I made some little experiments with loop, but systematically it's too much at the moment.
Everything ready for the next European War. So quickly it goes.
Josef Eschgfaeller Dipartimento Matematico Universita' di Ferrara e...@felix.unife.it e-mail http://felix.unife.it/ home page
Josef Eschgfaeller wrote: > Also, you missed the main point, when I wrote that beginners should > memorizes the structures which appear. I think that it is really important > to create an image of little typical pieces of code in their brain, > which they then recognize in more general cases. This means > carefully reading the code, creating by yourself mentally a sort > of stack of dependencies which substitutes the indentation.
But you don't *need* to do that, most of the time. Alfred North Whitehead once said something very wise: that intellectual progress is largely a matter of reducing the number of things about which we actually have to think. One thing that indentation does is to enable you to read code quickly *without* having to think hard about it; whereas the "mental sort of stack of dependencies" thing, though it's important to be able to do, requires some concentration. Usually, that concentration can be used better for other purposes.
Now, maybe that wasn't really so bad. But suppose it had been, not a piece of general blurb about how hard compressed English is to read, but a non-trivial technical question, or a hard-to-understand poem, or a set of crossword clues. That would have been *painful* (unless you're much cleverer than I am, which perhaps you are).
> I'm a mathematician by origin and know very well how disturbing > unusual notation can be. Writing X: f ---> f for a function instead > of f: X ---> X is an innocent change, but makes already things > uncomfortable. But if one knows exactly what one is speaking about, > it becomes a minor difficulty. Notation in mathematics is very > important, but understanding much more.
What would you think of a mathematician who began a seminar by saying "In what follows, I'm going to write all my arrows the other way round from what's usual; I'm going to use R to denote the Riemann sphere (short for Riemann, you see), and Z (short for Zahlen) to denote the usual real numbers. N will be the set of negative numbers. I find all this much easier to follow than the usual conventions. Oh, and I ought to warn you that I interchange the usual meanings of `tensor' and `torsion'"? I bet you'd hate him all through that seminar, even if he proved the Riemann Hypothesis. Of course I'm giving an extreme example; but that's the sort of effect you get if you say "I'm going to ignore the unanimous opinion of a generation of computer folks, and not indent any of my code, because *I* find it easier to read without the indentation".
> So I'm trying to understand exactly > what is going on in Lisp, because as a teacher I have to explain > well also those things, which a programmer maybe deals only by experiment > or experience. These little details, which some of you are > knowledgeable about, I not, are surely much more important than > indentation.
Certainly. And if you ask questions about those details, people will answer them. Although they might be more reluctant to do so if you insist on obfuscating your code :-).
>>> in fundamental mode), I verify the balance of parentheses with the editor. >> "always in fundamental mode"? there should be a law against that.
> Sorry, that's my private problem. I'm very quick in typewriting and > can indent by myself. During the last 1-3 years I wrote much in Python, > where indentation is obligatory - that's not the point. > I'm maintaining a bibliography with over 3500 files and a rather big > Web server, using only Emacs in fundamental mode, and it takes me very > little time. I like Emacs because it's so powerful, but if one prescribes > too much one looses some of that power.
What power do you use by using Emacs in Lisp mode? I don't understand.
>> this often happens to people who don't engage in introspection.
> This is pure wrestling. I thought about it before, I read all your > terrific mails, I shall think about again, so what about introspection? > I appreciated most the letters by Gareth McCaughan (British cool, I > like Sherlock Holmes - or Scottish? another flame arriving ...)
Thanks! Actually I'm Irish by descent, was born in the USA, and have lived in England most of my life. I guess that makes me, er, confused.
> I learned everything I need of Emacs and have an .emacs file full of > little utilities. I don't need the special modes because I type > so fast. How can you judge a person you don't know?
The special modes aren't there only in order to save typing. They're also intended to save thinking, and to save making the sort of stupid mistakes most of us make (especially when typing fast). Perhaps you don't make mistakes; but the rest of us do.
And, even if all they did was to speed your typing, wouldn't it be even better if you (effectively) typed even faster? Surely everything just scales linearly with typing speed, so that the proportional improvement is much the same whether you're very fast or very slow. (Not quite, obviously, since thinking speed doesn't depend on typing speed.)
Now, maybe you've given all the special modes that might be useful to you a thorough inspection and tried them for a bit, and you've found that they didn't help you; if so, fair enough.
> Give me some time please. I find loop rather complicated and it is a > long chapter in Steele. I shall read that later, because it is also > interesting, but before there are many other points I want to master. > I made some little experiments with loop, but systematically it's too > much at the moment.
A suggestion: don't bother trying to understand everything about LOOP for the moment. Learn to do easy things with it: (loop for i from 1 to n collect ...) (loop for i from 1 to n sum ...) (loop while ... do ...) Think of it as a sort of common syntax for all the different kinds of simple loop you can find in other languages. It *can* do hairy things too, but even if you never use it for the hairy things it's handy for simple things.
-- Gareth McCaughan Dept. of Pure Mathematics & Math. Statistics, Gareth.McCaug...@pobox.com Cambridge University, England.
Josef Eschgfaeller <e...@felix.unife.it> writes: > Make an agreement - I forget what you said and you forget what I say > in the next lines. Do you really fear that my students will spread > from Ferrara over the continents and ruin Lisp worldwide? How can you > call someone you don't know a bad teacher? Do you know that in many > universities they teach Pascal? I did that 13 years ago. Anyway, I > taught 7 hours of Lisp at the end of the C/C++ course and it was a > little success. Young girls seem to be very able to close parentheses, > as opposed to your young programmers. Next year I'll teach a full > year course on Lisp, comp.lang.lisp permitting and helping I > thought. I have some good books here and collected many articles to > read from the web, however, so in case of disaster I shall organize > some Robinson Lisp. But it's not my preferred choice.
everyone teaches by their actions (and sometimes by their words). good teachers do not hobble their students, as i fear you are doing.
if you're interested in choice and freedom of expression, the best thing you can do for your students is to archive these discussions, present them to the class, and let them decide for themselves. you may learn something in the process.
> Erik Naggum wrote: > > > it seems you stick to your non-indentation line with something other > > than willingness to listen to good advice. > > Hey, this is becoming a sport. I thought I'm here in a good group with > big people from the Lisp community, where I can learn much, and find > myself in this wrestling ring. I didn't stick at all, I sent 3 lines > and 4 lines of not indented code, which everybody of you big guys could > read easily, read carefully your replies, agreeing in part, sometimes > remaining more doubtful, and thought in the last two days we could stop,
and kept insisting indentation was not essential. Since we have good reason to believe indentation _is_ essential, we have been trying to enlighten you, and also anybody else that may have been reading the thread.
[...] > Anyway, I'm a little surprised, how important indendation > seems to be. I think there is much more in Lisp than indentation.
Indeed. Also, there is much more in poetry than starting each verse on a new line, yet somehow poets do do this---just ritual, I guess, probably sanctified because Homer did it (whoever it was that wrote the Iliad down, since Homer couldn't actually do it, being blind).
Fill, 66 characters per line:
No longer mourn for me when I am dead than you shall hear the surly sullen bell give warning to the world that I am fled from this vile world, with vilest worms to dwell. Nay, if you read this line, remember not the hand that writ it, for I love you so that I in your sweet memory would be forgot if thinking on me should make you woe. Oh, if, I say, you come upon this verse when I perhaps compounded am with clay, do not so much as my poor name rehearse but let your love even with my life decay. Lest the wise world should look into your moan and mock you with me after I am gone.
[...] > Do you know that in many universities > they teach Pascal? I did that 13 years ago.
After languages such as Scheme, CLU and probably some of the functional languages, Pascal is a good choice of an educational programming language (after all, this was its original purpose), much better than Java or C or C++ as a first-year programming language. (Mail flames directly to me and I will summarise to the group.)
> Anyway, I taught 7 hours of Lisp > at the end of the C/C++ course and it was a little success. Young girls seem > to be very able to close parentheses, as opposed to your young programmers.
If Lisp is not about indentation, it is even less about closing parentheses, first impressions notwithstanding.
[...] > So I'm trying to understand exactly > what is going on in Lisp, because as a teacher I have to explain > well also those things [...]
Let me take this occasion to say that I believe in this: the amount of what a teacher knows about the subject being taught must be at least 10 times as much as what the teacher actually says on the subject.
[...] > I'm maintaining a bibliography with over 3500 files and a rather big > Web server, using only Emacs in fundamental mode, and it takes me very > little time. I like Emacs because it's so powerful, but if one prescribes > too much one looses some of that power.
Does maintaining a server include writing/modifying programs? If so, why do you miss the chance to improve productivity by using an appropriate mode? If not, do you also restrict yourself to fundamental mode when _writing_ programs?
[...] > Give me some time please. I find loop rather complicated and it is a > long chapter in Steele. I shall read that later, because it is also > interesting, but before there are many other points I want to master. > I made some little experiments with loop, but systematically it's too > much at the moment.
This led me to make the following mental experiment. Consider the following statement, made extreme for illustrative purposes:
LOOP is evil, I refuse to use it, I refuse to learn it, it has no place as part of Lisp.
Now, imagine that a Lisp programmer says that. After that, imagine that a Lisp teacher says that. There is a difference, isn't there.
Similar to what one of the other posters suggested, I wonder if there are Lisp students (whether from Ferrara or not) that are reading this, and I wonder what they would think of it.
On Wed, 30 Jun 1999 19:57:39 +0200, Josef Eschgfaeller
<e...@felix.unife.it> wrote: >I shall take much time this summer to learn Lisp well and thought to seek >more useful advice from the list.
Good luck with this...
>I'll reply now to some points, but I was more interested in understanding >here what I cannot find in the books, so perhaps one should conclude >this indentation thread. For example there were also some mistakes >in all that. Anyway, I'm a little surprised, how important indendation >seems to be. I think there is much more in Lisp than indentation.
Indeed there is more than indentation.
The point is that indentation is sufficiently easy to automate, and improves readability sufficiently, that it makes little sense to *not* automate this.
>I'm a mathematician by origin and know very well how disturbing >unusual notation can be. Writing X: f ---> f for a function instead >of f: X ---> X is an innocent change, but makes already things >uncomfortable. But if one knows exactly what one is speaking about, >it becomes a minor difficulty. Notation in mathematics is very >important, but understanding much more. So I'm trying to understand exactly >what is going on in Lisp, because as a teacher I have to explain >well also those things, which a programmer maybe deals only by experiment >or experience. These little details, which some of you are >knowledgeable about, I not, are surely much more important than >indentation.
A *definitely* reasonable parallel is to look at Donald Knuth's efforts in creating TeX.
He spent considerable time and effort to build tools to render mathematical material correctly.
And contrary to your suggestion that indentation isn't important, in TeX, the notion of "gluing" objects together is the concept of *vital* importance. One (good) view of TeX is as a system that allows the user to construct a large and very complex dynamic programming formulation where the point of the exercise is to optimize the layout based on a host of constraints and objectives.
In effect, this is the "indentation problem" taken to the nth degree.
>>> For example: "A do has the following structure ... Therefore, when you >>> see a do, look first at the assignments, then at the break-condition and >>> the result, then at the single instructions." And so on. In my opinion >>> this is a good training, and after little time one has no more need to >>> study the indentations, which also takes time and distracts.
>> this sounds like a struggling beginner's view, a beginner who struggles >> because he's doing something wrong and don't want to change his ways.
>Here I cannot follow your reply. It's an important point. What is >wrong with it? I'm a beginner - I studied Lisp two years ago, mainly >in a good older German book by Mayer, which explains rather well the >underlying data structures, but thought then it were too difficult >for my classes, and changed opinion only this year, because it seemed >easy for them. The students are beginners too. So I think it's o.k. >that they learn how the building blocks in Lisp look.
>And why do you think that I don't want to change my opinions? When I >learn something, I change my opinions very often, each time I discover >some new aspect.
You suggest that a goal is for one to (rewording slightly) "not need to work hard at handling indentation."
Everyone agrees with that; the point that is being put across is that with an editor environment that is supportive of indentation, managing indentation does not represent a burden either of intellectual effort or of time.
>>> in fundamental mode), I verify the balance of parentheses with the editor. >> "always in fundamental mode"? there should be a law against that.
>Sorry, that's my private problem. I'm very quick in typewriting and >can indent by myself. During the last 1-3 years I wrote much in Python, >where indentation is obligatory - that's not the point. >I'm maintaining a bibliography with over 3500 files and a rather big >Web server, using only Emacs in fundamental mode, and it takes me very >little time. I like Emacs because it's so powerful, but if one prescribes >too much one looses some of that power.
If you switched to a Lisp-oriented mode, the editor could handle Lisp indentation for you, thereby diminishing the number of things you need to worry about by one.
>> here's my suggestion: use PPRINT on your forms to see how Common Lisp is >> most commonly formatted.
>Beautiful. I shall from now on indent my code in my questions, and if >I should forget, you use print. I tried it, it works well.
>> (defun number-list (from to &optional (step 1)) >> (do ((element from (+ element step)) (list nil)) >> ((> element to) (nreverse list)) >> (push element list)))
>> I would expect a seasoned Lisp programmer not to write this as a function
>Now you are critizing non-seasoned Paul Graham.
What he presents in a textbook, for pedagogical purposes, may not represent what should be used in large production systems.
It is useful to have students perform exercises that build functions for things that one might, "programming in the large," instead represent in another way.
>> rather just write (loop for n from <from> to <to> collect n)
>Give me some time please. I find loop rather complicated and it is a >long chapter in Steele. I shall read that later, because it is also >interesting, but before there are many other points I want to master. >I made some little experiments with loop, but systematically it's too >much at the moment.
... And that represents nicely why Graham would present it as a function.
(loop ...) is not a Lisp form that is easy for novices to grasp.
a) If the point of the course is to teach about things like lists, recursion, and presenting-program-as-data, (loop) is not of great pedagogical value.
b) (loop) is hard to understand, and novices shouldn't try to learn it first, as in that direction lies frustration.
c) The specifications for (loop) are arguably not completely consistent, which means that experts may sometimes disagree as to how a particular instance should function. -- Real Programmers use: "compress -d > a.out" cbbro...@ntlug.org- <http://www.ntlug.org/~cbbrowne/lsf.html>
Thien-Thi Nguyen wrote: > if you're interested in choice and freedom of expression
I find this not correct. I did at most propose a different point of view, I did not defend it so exaggeratedly, and some of you guys attack me in this way and speak of choice and freedom of expression.
Was it not you who wrote me last week "I believe education about Lisp is the most important thing we can do at this time, and hope your course goes well."?
Eli Barzilay wrote now too:
>> (defun num-list (a b &optional (d 1)) >> (do ((x a (+ x d)) (li nil)) >> ((> x b) (nreverse li)) (push x li))) > BTW, if indentation is completely unimportant, why did you put the > newlines in those places? Why did you put spaces around some parens > where it is not needed? > And if you insist on using this style in public, then why do you put > these "> " prefixes to stuff you quoted?
You like it to contradict yourself. If you look a little better at my earth-shaking 3 lines, you would discover that there is some system. Do you have any difficulty to read it? May be it's unconventional, but it's rather neat. I see, also on the list, sometimes code which is less carefully structured.
I learnt those "> " prefixes on Fidonet - a good school in civilised written remote distance communication.
> The whole point of comparing natural language to programs is bogus. > When you write English sentences (or any other language), you never > get them too deep. Try looking at texts that you wrote and find the > longest sentence, then find the longest function you wrote.
Not so sure. Read Kant or Cicero or Defoe, and you will find quite long sentences. It's training. Today young people don't read much and think that a sentence of three lines is a long one.
> The memoization of a function fn using a key which defaults to the > first function and a test that defaults to eql function and an > optional name argument is: take table as a new hash table with a > test as its test function, set the :memo property of the name
Funny. Remembers me of the HyperTalk programs I wrote years ago. Was not a bad language. Your example shows also that natural language is rather powerful and that, with some ability, one could formulate most computer programs in natural language. It seems to me more a compiler problem. But all these attacks are stupid. In mathematics really there are complicated formulas or theorems which are almost impossible to translate into a natural language. Try to translate some lines of a paper in commutative algebra into English. But I know such stuff by myself, don't you believe that? How do you know that I never thought about such things?
I find Lisp a very interesting language, sometimes I think that young pure programmers don't see everything one can make out of it, and I'm interested in discussing technical and, if you want, also general or philosophical aspects, being conscious that many people on the list are more knowledgeable than I, but this thread, which is not more correct or constructive, I have no intention to continue. Sorry to those who instead were constructive.
* Josef Eschgfaeller <e...@felix.unife.it> | Hey, this is becoming a sport.
why am I not surprised that this is your line of defense? sigh.
| Read the end of my first message ("with no intention of flame") - I'm not | the world danger for the Lisp community.
in this demonstration of paranoia, you keep defending yourself against charges that have never been levied against you, which I take to mean that you do not intend to listen, learn, or adapt your ways, but are still fully aware that they are wrong and do not serve the purposes you want them to serve.
| Anyway, I'm a little surprised, how important indendation seems to be.
if it is so unimportant to you, why don't you just adapt?
I'm still baffled by the amazing lack of introspection on your part. why don't you understand how important indentation is to _yourself_ before you attack others for really stupid things they don't say, mean or intend?
| Young girls seem to be very able to close parentheses, as opposed to your | young programmers.
come again? as opposed to _whom_? I actually do teach Lisp at times, but now is the first time you have had opportunity to learn that fact. my "young programmers" are taught to understand structure by zooming in, not by scrutinizing details, because when a professional programmer reads code, he or she will want to understand big issues first, not minutiae of the coding. stuff like control flow, data flow, intent, and abstraction, not the precise syntax of a DO form.
| Also, you missed the main point, when I wrote that beginners should | memorizes the structures which appear.
no, I downgraded your "main" point and upgraded your other points.
| This means carefully reading the code, creating by yourself mentally a | sort of stack of dependencies which substitutes the indentation.
this is a mistaken view. the big, useful idea with high-level languages is to be able to localize effects so that the human brain can deal with units of useful size, and to respect the fact that the human brain does not have an unlimited stack with unlimited precision and does not have an unlimited number of mental units available. if we had had that, we would have had very different languages. and programming is already _way_ more difficult to grasp and hold in one's brain than regular languages.
| I'm a mathematician by origin and know very well how disturbing unusual | notation can be. ... So I'm trying to understand exactly what is going | on in Lisp, because as a teacher I have to explain well also those | things, which a programmer maybe deals only by experiment or experience.
this tells me that you have never actually programmed, only taught. when programming in real life, the most important issue is fast navigation, bar none. professional programmers want to read code in large blocks, not look at every character. that's how most people read, too: they don't look at each character, they scan multiple "word pictures" at a time, perhaps whole paragraphs to recognize key words. the visual structure of a text, with paragraphs, heads, fonts, etc, is all there to make this scanning faster and more accurate. you effectively argue that we should revert to ¶'s in the middle of the text, and neither should we use more visible display fonts for heads, because people will read a page of text from start to finish, anyway.
| These little details, which some of you are knowledgeable about, I not, | are surely much more important than indentation.
again, if indentation is so unimportant to you, why do you carp on it?
| And why do you think that I don't want to change my opinions?
because you haven't, in a case where you should have if the rest of what you say is true and honest.
| I'm very quick in typewriting and can indent by myself.
well, stuff like this helps me conclude you won't change your opinions. smart people keep looking at ways to improve their ways. being _satisfied_ with a way of doing something only goes to show that you're set in your ways, and having a teacher like that is the worst that could happen to a group of students (apart from being shot, raped, poisoned, etc, which I'm sure you would have brought up if I didn't exclude it).
| More generally the point of view, that someone who doesn't follow blindly | any uniformization lacks introspection, should be rather dangerous.
ah, so you think this is about your not following "uniformization", and of course your have to make it into _blindly_ following, too! geez.
| Indentation is not the problem, I can indent how you want, but I'm | thinking about intolerance now.
great, but maybe you should start examining your own intolerance first. maybe you should examine the _actual_ basis for your incredibly stupid charge of "blindly following uniformization". you're hell-bent on being different for no good reason, and that has a high price. deal with it.
| I learned everything I need of Emacs and have an .emacs file full of | little utilities. I don't need the special modes because I type so fast.
people who think they have "learned everything they need" are wrong.
| How can you judge a person you don't know?
because I judge and criticize your actions, not your person.
| Now you are critizing non-seasoned Paul Graham.
silly appeals to authority don't work very well with me. try again.
| Everything ready for the next European War.
I'm really baffled why you want to start a war over this. you're being criticized for a really stupid position, take it deeply personal, defend yourself against charge never levied at you, fill your rejoinder with 95% irrelevant crap, and you think others are at war with you? are you nuts?
but, yeah, you're right, there's nothing the world can ever teach you, so let's conclude this discussion now.
#:Erik -- @1999-07-22T00:37:33Z -- pi billion seconds since the turn of the century
Josef Eschgfaeller wrote: > I'm a mathematician by origin and know very well how disturbing > Give me some time please. I find loop rather complicated and it is a
Learn SERIES. (Appendix in CLtL2) You'll like it. Leave loops to the Pascal teachers Show the _other_ ways of doing things. And, more importantly, the evils of:
1. EVAL (instead of APPY) 2. Lists (instead of structures/CLOS) 3. MAPCAR (instead of SERIES) 4. Macros (instead of (declare inline))
The worst thing is not when people is not exposed to Lisp, it's when they are trivially introduced to it, so that then they try to blindly apply _one_ approach to everything, which is wrong. Gee, I can write an AntiPattern paper now ;->
Josef Eschgfaeller <e...@felix.unife.it> writes: > Not so sure. Read Kant or Cicero or Defoe, and you will find quite > long sentences. It's training. Today young people don't read much > and think that a sentence of three lines is a long one.
Dangerous statement. People who do a lot of news & mail often read a *lot*. On bad days I probably look at over 100,000 words (400 messages, 50 lines, 5 words a line) a day. And others read a lot more than me. Of course I'm not reading all that in depth and I don't *like* reading that much, but I (and many other people) really consume a lot of written text.
On bad days (or perhaps good days?) I also scan a *lot* of program source, particularly when chasing bugs in some large system I don't know that well.
And I'm doing that off a screen with a monospaced (albeit carefully chosen) font. I have no idea what my rate of consumption of decently printed text would peak at: for ficton I can certainly do 1000 pages a day, and again I am nowhere near the extreme. There must be many people alive today who have read more printed text than there *was* x hundred years ago, for x a fairly small number.
And it's exactly those people who want their Lisp code indented nicely -- they've read enough of it to *know* it wins.
* Josef Eschgfaeller <e...@felix.unife.it> | I find this not correct. I did at most propose a different point | of view, I did not defend it so exaggeratedly, and some of you guys | attack me in this way and speak of choice and freedom of expression. | | Was it not you who wrote me last week "I believe education about Lisp | is the most important thing we can do at this time, and hope your | course goes well."?
this is actually quite interesting. not only is this guy posting from Italy, he's from outer space. I just _knew_ it was a bad idea to send Lisp into space.
here on earth, we appreciate the opportunity to criticize people's actions and have this naïve idea that to err is human, which means that even at the time the action indeed WAS the best thing to do, that quality might not have been fully established from the available information, or some vital information might have been missing, or, as might readily happen, the person was not entirely focused on the particular task at hand and slipped up. none of these faults are personality disorders in humans -- it's how we normally think and act and respond to others. part of the idea is to present views and positions to others and then actually accept input and more information, even if we think we are right to begin with. so if you have been unable to convince humans, it might just be that you have not yet discovered that earthlings are more flawed in this regard than members of your own alien species.
| You like it to contradict yourself. If you look a little better at my | earth-shaking 3 lines, you would discover that there is some system. ^^^^^^^^^^^^^
you really are visiting this planet only to destabilize the Lisp world, aren't you, and quite literally so, too? this is what we humans call a Freudian slip, named after another nutty guy who might as well have come from outer space himself, considering HIS weird fixation with particular properties of human behavior, too.
| I learnt those "> " prefixes on Fidonet - a good school in civilised | written remote distance communication.
and this just goes to show that we just gotta be more careful what we send out into space via those satellites. I'll bet they get all confused about who the aliens are in 3rd Rock from the Sun, too. damn!
| Not so sure. Read Kant or Cicero or Defoe, and you will find quite long | sentences. It's training. Today young people don't read much and think | that a sentence of three lines is a long one.
again, Hollywood and mass marketing and television commercials are not what this planet is about. I'm sorry about sending the wrong signals to your planet, but here on earth, only a tiny minority of young people are similar to what the adults think they look like. maybe the people who make TV shows for dumb kids are also from outer space. it would explain an awful lot.
| But I know such stuff by myself, don't you believe that? How do you know | that I never thought about such things?
I sympathize. it must be awful to watch us limited humans react only to what you write and not what _you_ know is communicated to the entire galaxy from your telepathic superbrain. we're _ages_ away from actually developing telepathy, you see, so we limit our reactions to what people do and say, and respond to what people do and say, not the entirety of their personality, even though you probably do that on your planet. I remember Robert A. Heinlein using the work "grok" to describe the merging of oneself with knowledge of something else.
I hope they don't terminate you just because you have been exposed, but if you do have to go, could you tell the SETI project what to look for?
enjoy your stay. and I'm glad Lisp is what attracted the aliens, too.
#:Erik -- @1999-07-22T00:37:33Z -- pi billion seconds since the turn of the century
On Wed, 30 Jun 1999 23:44:06 +0300, Vassil Nikolov <vniko...@poboxes.com> wrote:
> Similar to what one of the other posters suggested, I wonder if > there are Lisp students (whether from Ferrara or not) that are > reading this, and I wonder what they would think of it.
I am a computer science student at the university of Milano, Italy. I took my latest Lisp class last year. It was my third Scheme class (okay, I promise that I will join a Lisp Anonymous group to get out of this addiction :)
My experience shows that students rely on indentation for understanding Lisp code. I'll tell you an anecdote that shows how much it's important for them. But first switch your newsreader to its maximum parental control setting, and make sure there are no kids around :)
At the time of my latest Scheme class, our student lab was equipped with a couple of HP servers running HP-UX, accessible through about one hundred X terminals, and a dozen diskless PCs running WFW 3.x. All machines were connected to a LAN. STk was installed on the Unix systems, 3DScheme (a commercial educational environment by Schemers, Inc.) on the PCs.
Students were free to decide both the topic of the final programming project and which Scheme system to use for development. Most of them loved 3DScheme's and DrScheme's automatic indentation and sexp visualization facilities.
A group of students chose STk for the project. Their "editing cycle" was rather--how can I say?--"unconventional". They started coding under Unix with vi (not in Lisp mode) or nedit (if it provides facilities for Lisp indentation, they weren't used). When the thing became sufficiently messy, they:
- accessed the files from the Windows PCs via NFS - loaded them with 3DScheme - reformatted the code with 3DScheme's integrated editor - continued editing the freshly formatted files under Unix
Paolo Amoroso wrote: > A group of students chose STk for the project. Their "editing cycle" was > rather--how can I say?--"unconventional". They started coding under Unix > with vi (not in Lisp mode) or nedit (if it provides facilities for Lisp
The STk documentation mentions the modes available for Emacs, which include a classic remote-eval facility. Obviously they were not guided properly.
Josef Eschgfaeller wrote: > Not so sure. Read Kant or Cicero or Defoe, and you will find quite > long sentences. It's training. Today young people don't read much > and think that a sentence of three lines is a long one.
Maybe, but OTOH I remember an editor's footnote in "Kritik der reinen Vernunft" which says that some sentence could not be reconstructed due to lack of a recognizable grammatical structure, i.e. unreadable programs tend to be buggy.
Btw., I recently did an experiment (with VIM on a DOS box): I changed the color of the parentheses (why the hell does vim colorize *them* at all?) to an almost (adjustable with the contrast knob of the monitor) dark grey in scheme.vim.
The readability of the code did almost not suffer (what I missed was a correctly working autoindent).
amor...@mclink.it (Paolo Amoroso) writes: > On Wed, 30 Jun 1999 23:44:06 +0300, Vassil Nikolov <vniko...@poboxes.com> > wrote:
> > Similar to what one of the other posters suggested, I wonder if > > there are Lisp students (whether from Ferrara or not) that are > > reading this, and I wonder what they would think of it.
> I am a computer science student at the university of Milano, Italy. I took > my latest Lisp class last year. It was my third Scheme class (okay, I > promise that I will join a Lisp Anonymous group to get out of this > addiction :)
That's where I got addicted too. Since it looks like I am much older than you, you have no escape. :)
> At the time of my latest Scheme class, our student lab was equipped with a > couple of HP servers running HP-UX, accessible through about one hundred X > terminals, and a dozen diskless PCs running WFW 3.x. All machines were > connected to a LAN. STk was installed on the Unix systems, 3DScheme (a > commercial educational environment by Schemers, Inc.) on the PCs.
> Students were free to decide both the topic of the final programming > project and which Scheme system to use for development. Most of them loved > 3DScheme's and DrScheme's automatic indentation and sexp visualization > facilities.
> A group of students chose STk for the project. Their "editing cycle" was > rather--how can I say?--"unconventional". They started coding under Unix > with vi (not in Lisp mode) or nedit (if it provides facilities for Lisp > indentation, they weren't used). When the thing became sufficiently messy, > they:
> - accessed the files from the Windows PCs via NFS > - loaded them with 3DScheme > - reformatted the code with 3DScheme's integrated editor > - continued editing the freshly formatted files under Unix
Most of this story is amusing to me, since I know a couple of the professor there and always told them to switch to CL. On top of that, the lack of Emacs culture at Milan is appalling :)
As usual the solution is to install Emacs everywhere and start working with the real thing :)
Cheers
-- Marco Antoniotti =========================================== PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY tel. +39 - 06 68 10 03 17, fax. +39 - 06 68 80 79 26 http://www.parades.rm.cnr.it/~marcoxa
Josef Eschgfaeller wrote: > Not so sure. Read Kant or Cicero or Defoe, and you will find quite > long sentences. It's training. Today young people don't read much > and think that a sentence of three lines is a long one.
Thank you for patronising young people.
I would advice you to read something a bit more upto date like Witgenstein or something pop like Simenon. They are able to say something without using long sentences.
I find that reading long obscure multi-line blocks of code tedious. More so since it is almost always unneccessary.
Although I don't have the capacity to consume the scary amount of text that Tim can (doesn't it hurt?), there are times where I too have to read alot of code. And it would make my and alot of other programmers lives alot easier if people would try and KEEP IT SIMPLE. There are very difficult idears and problems to be tackled in this world (thats what makes it interesting) but obscuring these problems by making things more complicated than they need is something that should be abhorred.
Ralf Muschall writes: > Josef Eschgfaeller wrote: > > Not so sure. Read Kant or Cicero or Defoe, and you will find quite [...] > Maybe, but OTOH I remember an editor's footnote in > "Kritik der reinen Vernunft" which says that some sentence > could not be reconstructed due to lack of a recognizable > grammatical structure, i.e. unreadable programs tend to > be buggy.
Kant's late & great books are landmarks of academic obfuscation. His stylistic barbarisms make reading the "critiques" about as pleasant as chewing leather. (With the exception of some passages.)
Rolf-Thomas Happe wrote: > Ralf Muschall writes: > > Josef Eschgfaeller wrote: > > > Not so sure. Read Kant or Cicero or Defoe, and you will find quite > [...] > > Maybe, but OTOH I remember an editor's footnote in > > "Kritik der reinen Vernunft" which says that some sentence > > could not be reconstructed due to lack of a recognizable > > grammatical structure, i.e. unreadable programs tend to > > be buggy.
> Kant's late & great books are landmarks of academic obfuscation. > His stylistic barbarisms make reading the "critiques" about as > pleasant as chewing leather. (With the exception of some passages.)
>Learn SERIES. (Appendix in CLtL2) You'll like it. >Leave loops to the Pascal teachers. Show the _other_ ways >of doing things. And, more importantly, the evils of: >3. MAPCAR (instead of SERIES)
What would be the short anti-pattern of MAPCAR? (compared to the advantages of series, which i don't know that good)
I do see that mapping with lazy-evaluated lists has some serious advantages over the simple mapping, but i wouldn't try to explain that in a beginners course, only as far as SICP goes (lazy evaluation only), but not into the complete SERIES package.