Subject: Re: why we have cons? From: Erik Naggum <clerik@naggum.no> Date: 1998/01/06 Newsgroups: comp.lang.lisp Message-ID: <3093112334252034@naggum.no> * Xah | I wasn't complaining, nor was I arrogant. OK. if you say so. | Comparing our posts in this thread, I think it's fair to say you are the | one complaining and arrogant. I think it's fair to say that you don't listen to what people tell you. if there is a definition of arrogance, it must include such behavior. | I was just trying to illustrate how they are uniformly represented in | Mathematica. it seems that you don't differentiate between what something looks like and what it is. how something internal is shown to the user is (often) called the "presentation". how something external is implemented internally is (often) called the "representation" since we're talking about using concepts and means different from the ones we're trying to _represent_ and making them take on the meanings we want, as something essentially very different from what they _are_ per se. e.g., a machine word is just a number of bits. we _represent_ an integer with them by multiplying each bit by a weight according to its position in the word and summing the results. we _present_ this machine word as a string of digits to the user when the user has decided that a particular machine word is to be used as an integer. then we ignore the number of bits in a machine word and talk of integers that may require any number of machine words (as many as are necessary to maintain the bit with the highest weight) as an "integer". this is a successful abstraction. is it inconceivable to you that somebody might want to know about the value of a particular bit and thus would have to know about the weight if he could not view the integer as a number of bits? now, ask yourself what you would do in a language that hid the implementation of integers as a number of bits: you would have to _recover_ the implementation. Common Lisp has a function `logbitp' which reports on a bit value by position. is this as much a no-no as the cons cell to you, or can you think in terms of integers as values even though `logbitp' exposes internals? I know I can think in terms of both integer value and bits at different times even though there is no difference to the computer. that's why I talk about using `first' instead of `car' when the object is a list, and using `car' instead of `first' when the object is a cons. do you get it? however, since you keep clamoring about how Mathematica _represents_ this and that, I must assume that you don't listen to what you're being told. you don't _know_ how Mathematica _represents_ anything at all, since you aren't allowed to look inside it, right? so you confuse user interface with implementation. this is sheer ignorance, and it has not abated one millimeter since you asked to be illuminated. if you were blinded by the strong light, you could still have been illuminated, and there are other ways to express this than those you have chosen. I do get both irritated and sometimes downright hostile to "newbies" who don't want the answers they get because they didn't understand the questions they asked. I did try to be helpful and set the stage for your illumination, but _noooo_, you rejected all helpful offers and were instead _only_ offended. in contrast, I do something useful when I'm offended, but I don't turn off the irritation, because I think people who are irritating should be told. I very rerely flame people without solid technical contents alongside it that also indicate that flaming will cease if they get the ideas. if you can't see this, don't blame me for it. you choose what you react to just as much as I do. | It is apparant to me that no one so far indicated a familarity with | Mathematica. Otherwise, the context of my question would be recognized | clearly without doubt. this is another clear indication of your arrogance. you came to us to tell us that some notion of ours was redundant. you're wrong. then you tell us that it's our fault that we don't agree with you because you are ignorant of Lisp and you accuse us of being ignorant of whatever you think is ideal. (but don't you listen? ideals are _never_ universal, because they depend on the ideas they are embodiments of, and those ideas differ according to context and individual preferences.) if somebody had come to your ideal Mathematica world and made as much fuss about the implementation of lists as you do in Lisp, what would you have thought about them? could you please try to listen to what you're saying as you best can imagine it would be heared by those you talk to? | (now, is there a limitation to the caadadadddaadr length?) in the predefined functions, c[ad][ad][ad][ad]r is the longest it gets. you are free to define your own, longer names, if you so desire. the _usefulness_ of this is highly debatable, however, since you should name them according to your needs, not according to the implementation. but why _does_ this implementation issue bother you so much? I get the distinct impression that you cannot think in higher-level terms unless the lower-level concepts are removed from out of your sight. you even accuse _me_ of such a shallow-minded attitude, when it is instead obvious that you don't make _any_ effort to understand what I'm talking about. I have shown you that by a switch of names, your problem would go away, but you still continue to hang on to your confusion and insistence that we should listen to your misguided "ideals". _why_ don't you listen? do you suffer from prestige? | In Erik's last message arguing point-for-point style to my message, many | points are really pointless, philosiphical, and cheap shots. I'm really sorry, but you have to realize that the questions you asked just don't have the answers you want them to have. so, some of them will _have_ to be answered philosophically because you don't understand the philosophical underpinnings of your questions, only the implementation issues that you are used to from Mathematica. consider this: it's an artifact of the implementation of the Mathematica language that causes you to believe that there is not a cons-cell-based implementation underneath, and an artifact of the implementation of lists in Scheme (and CL) that causes you to complain about the implementation. whether to provide access to lower-level aspects to an abstraction is _not_ a language issue, but an implementation issue. whether to focus on the implementation issue instead of the abstractions they implement is a user attirude issue, not a language issue. when you ignore the fact that there are other artifacts of the implementation that any reasonably good Lisp programmer would employ that would not expose the implementation, you argue very strongly against yourself -- you really want to deal with an implementation issue: "how much of the internals can an implementation show before it bothers Xah to death?" I don't ask that question. I ask the question: "how little of the implementation do I have to worry about if I want to worry as little about the implementation as possible?" you claim that you don't want to think or talk about the implementation issues, but you talk of nothing else! now, quit that. talk about the abstractions you want to talk about. _I_ have written (at length) about the fact that you _can_ think in terms of the abstractions regardless of how the list abstraction is implemented. you have _ignored_ this and focus only on whatever you don't like, so I have revised my opinion of you. I think you are beyond hope and that your arrogant ignorance is really due to stupidity. I also think it was stupid of you to force me to revise my opinion of you. | In summary, I think he is too deep into computer engineering than | computer science, and too enamored with perhaps CL. well, you have demonstrated that you can't think, so it's immaterial what you say you think, but let's hope that you will take the time to listen to what I have said, instead of what your narrow-minded reactions tell you to ignore. you may find that I did lend _you_ a hand while I slapped your ignorant comments (did you notice how I differentiated between your state of mind before and after reading my explanation?). you stupidly decided to behave as if _you_ were slapped, and now you return with moronic accusations that portray your own _obsession_ with implementation issues, quite contrary to your stated interests. whatever did you expect to achieve from all this? if you want lists, you have them. if you want to be bothered about cons cells, that's your choice. I suggest you don't get bothered by them. #:Erik -- The year "98" was new 1900 years ago. | Help fight MULE in GNU Emacs 20! Be year 2000 compliant, write "1998"! | http://sourcery.naggum.no/emacs/