>> But more generally, space should be a valid character in identifiers, > and >> with ISO 8859 and Unicode, it can be: just use the non-breaking-space. > I >> think this really _rules_ for extra super-high readability.
> Provided there is *some* way to visually distinguish it from a breaking > space!
Ask your editor to underline them ;-)
Regards, -- Nils Goesche "Don't ask for whom the <CTRL-G> tolls."
>> But more generally, space should be a valid character in identifiers, >and >> with ISO 8859 and Unicode, it can be: just use the non-breaking-space. >I >> think this really _rules_ for extra super-high readability.
>Provided there is *some* way to visually distinguish it from a breaking >space!
CL practice is tolerant of visually indistinguishable programs behaving differently, as came up in the discussion of the ~<newline> format directive.
In article <3227859937198...@naggum.net>, Erik Naggum <e...@naggum.net> wrote: > Here is a book suggestion for you: ISBN 0-312-28118-8.
The book Erik is recommending here is "Choosing Civility : The Twenty-Five Rules of Considerate Conduct."
So here's a reading suggestion for you, Erik: "The Emperor's New Clothes" by Hans Christian Anderson. Pay particular attention to the following passage:
"We are two very good tailors and after many years of research we have invented an extraordinary method to weave a cloth so light and fine that it looks invisible. As a matter of fact it is invisible to anyone who is too stupid and ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompetent to appreciate its quality." ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> And _please_ figure out this context thing.
I guess I'm just too stupid and incompetent to see it. Perhaps you should explain it to me again?
d...@goldshoe.gte.com (Dorai Sitaram) writes: > CL practice is tolerant of visually indistinguishable > programs behaving differently, as came up in the > discussion of the ~<newline> format directive.
FORMAT does not use the CL reader to parse the format string.
-- -> -/ - Rahul Jain - \- <- -> -\ http://linux.rice.edu/~rahul -=- mailto:rj...@techie.com /- <- -> -/ "Structure is nothing if it is all you got. Skeletons spook \- <- -> -\ people if [they] try to walk around on their own. I really /- <- -> -/ wonder why XML does not." -- Erik Naggum, comp.lang.lisp \- <- |--|--------|--------------|----|-------------|------|---------|-----|-| (c)1996-2002, All rights reserved. Disclaimer available upon request.
Matthias Blume <matth...@shimizu-blume.com> writes: > Rahul Jain <rj...@sid-1129.sid.rice.edu> writes: > > Erm, then would programming using just characters as values be > > symbolic programming? No. I have no clue how you picked up this > > misconception, but symbolic programming is programming using symbols > > as data. > What is a "symbol" according to you?
A data object that has some name and that name is what identifies that object. Namespaces are, of course, needed for practical concerns.
> "Symbolic programming" is a rather broad term which is generally used > to contrast with "numeric programming".
What is object-oriented programming then?
Are you claiming that using any data that is not purely (structures of) numbers is symbolic?
> > "Symbol programming" is a term I've never seen before. Not only does > > it sound funny, it implies nothing to do with CL... > He (Bruce) made that term up to emphasize the fine line that he is > detecting. Right, Bruce?
There's no fine line, that I can see.
-- -> -/ - Rahul Jain - \- <- -> -\ http://linux.rice.edu/~rahul -=- mailto:rj...@techie.com /- <- -> -/ "Structure is nothing if it is all you got. Skeletons spook \- <- -> -\ people if [they] try to walk around on their own. I really /- <- -> -/ wonder why XML does not." -- Erik Naggum, comp.lang.lisp \- <- |--|--------|--------------|----|-------------|------|---------|-----|-| (c)1996-2002, All rights reserved. Disclaimer available upon request.
* Erann Gat | Perhaps you should explain it to me again?
Erann, go see a shrink. And try to _read_ the book I suggested to you in good faith and spirit, instead of thinking it was just another bit of insult hurled your way. Your problems with me in all in your own mind.
/// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.
Rahul Jain <rj...@sid-1129.sid.rice.edu> writes: > > > Erm, then would programming using just characters as values be > > > symbolic programming? No. I have no clue how you picked up this > > > misconception, but symbolic programming is programming using symbols > > > as data.
> > What is a "symbol" according to you?
> A data object that has some name and that name is what identifies that > object.
What is a "name"? A string?
> > "Symbolic programming" is a rather broad term which is generally used > > to contrast with "numeric programming".
> What is object-oriented programming then?
Orthogonal concept.
> Are you claiming that using any data that is not purely (structures > of) numbers is symbolic?
No. The distinction is not absolute, of course. Some numeric programs have symbolic parts and vice versa.
> > > "Symbol programming" is a term I've never seen before. Not only does > > > it sound funny, it implies nothing to do with CL...
> > He (Bruce) made that term up to emphasize the fine line that he is > > detecting. Right, Bruce?
> > > Erm, then would programming using just characters as values be > > > symbolic programming? No. I have no clue how you picked up this > > > misconception, but symbolic programming is programming using symbols > > > as data.
> > What is a "symbol" according to you?
> A data object that has some name and that name is what identifies that > object. Namespaces are, of course, needed for practical concerns.
You didn't say anything about names having to be strings, nor that the name->symbol map be accessible during the parsing process. On a strict reading of this definition, if I define a class with a "name" slot, and make an index that allows me to retrieve instances of the class according to the value of the name slot (analogous to a package), then those instances are symbols. So, for example, I could make "symbols" whose names were, say, jpg images, or numbers, or other "symbols". Was that your intent? (If so, then I'm doing symbol[ic] programming after all. Whee! ;-)
In article <for8lh3wbd....@trex8.cs.bell-labs.com>, Matthias Blume <matth...@shimizu-blume.com> wrote:
> > > and "symbol programming", which is specifically the passing around > > > of CL symbols (which live in packages, and have function and value > > > slots and property lists).
> > "Symbol programming" is a term I've never seen before. Not only does > > it sound funny, it implies nothing to do with CL...
> He (Bruce) made that term up to emphasize the fine line that he is > detecting. Right, Bruce?
Right.
btw, the term "symbol processing" *has* been used by people here, repeatedly, in the past month. Make the distinction between "symbolic programming" and "symbol processing" if you prefer, but I thought that "symbol programming" sounded just striking enough to be worth using.
In article <3227890203073...@naggum.net>, Erik Naggum <e...@naggum.net> wrote: > * Erann Gat > | Perhaps you should explain it to me again?
> Erann, go see a shrink. And try to _read_ the book I suggested to you in > good faith and spirit, instead of thinking it was just another bit of > insult hurled your way. Your problems with me in all in your own mind.
No, Erik, my problems with you are all you *your* mind. You think I'm attacking you. I'm not. You think I interpreted your book recommendation as "just another bit of insult." I didn't.
The only reason we're having this discussion is that I would like to understand what I said that you perceived as an attack. But you refuse to tell me.
I would much prefer to drop this whole thing and go back to talking about whether using symbols instead of keywords is a good idea or not, but you refuse to do that too.
Instead you waste everyone's time by offering me psychological advice. Just stop it and get back to Lisp. And if you can't do that, then take your own advice and just ignore me. After all, according to you I'm just an annoying idiot. Why don't you do everyone a favor and killfile me?
In article <ub2b8oli2re...@corp.supernews.com>, cr88192 wrote: > (can't really write, am in a bad mood, just now after 3 hours am I stable > enough to try to write...). what exists of my life is comming apart, ever > had the experience where you hate yourself because of how you feel, you
...
Reading this and the couple other posts of yours in this thread seriously sounds like you are having trouble with depression. Whether major/clinical depression or "just" passing depression from problems, it can tear you up and should NOT be taken lightly. Look for more information, and seek help. Really.
> sorry about being off topic, just there is no one really to tell.
Alt.support.depression tends to be a pretty good place for that. Try it.
g...@jpl.nasa.gov (Erann Gat) writes: > You didn't say anything about names having to be strings, nor that the > name->symbol map be accessible during the parsing process. On a strict > reading of this definition, if I define a class with a "name" slot, and > make an index that allows me to retrieve instances of the class according > to the value of the name slot (analogous to a package), then those > instances are symbols.
Well... those are all useful in making the concept practical, and the "name" slot simply gives a concrete representation of the name, the symbol itself IS the name/identifier.
-- -> -/ - Rahul Jain - \- <- -> -\ http://linux.rice.edu/~rahul -=- mailto:rj...@techie.com /- <- -> -/ "Structure is nothing if it is all you got. Skeletons spook \- <- -> -\ people if [they] try to walk around on their own. I really /- <- -> -/ wonder why XML does not." -- Erik Naggum, comp.lang.lisp \- <- |--|--------|--------------|----|-------------|------|---------|-----|-| (c)1996-2002, All rights reserved. Disclaimer available upon request.
Rahul Jain <rj...@sid-1129.sid.rice.edu> writes: > Well... those are all useful in making the concept practical, and the > "name" slot simply gives a concrete representation of the name,
Let me just check if I got this right:
You wrote, answering the question of "what is a symbol":
A data object that has some name and that name is what identifies that object.
Now you write:
[ ... ] the symbol itself IS the name/identifier.
Taken together, this gives:
[A symbol is] a data object that has itself and [it] itself is what identifies [it].
Matthias Blume <matth...@shimizu-blume.com> writes: > Let me just check if I got this right:
> You wrote, answering the question of "what is a symbol":
> A data object that has some name and that name is what identifies that > object.
This name is only used for communicating to the user what symbol is being referred to.
> Now you write:
> [ ... ] the symbol itself IS the name/identifier.
> Taken together, this gives:
> [A symbol is] a data object that has itself and [it] itself is what > identifies [it].
Yes, if you ignore the context and try to play word games, that can happen.
> Sounds like "symbols" could be about anything...
Symbols are objects that are used as uniqified identifiers... symbolic identifiers.
What do YOU define symbols to be?
-- -> -/ - Rahul Jain - \- <- -> -\ http://linux.rice.edu/~rahul -=- mailto:rj...@techie.com /- <- -> -/ "Structure is nothing if it is all you got. Skeletons spook \- <- -> -\ people if [they] try to walk around on their own. I really /- <- -> -/ wonder why XML does not." -- Erik Naggum, comp.lang.lisp \- <- |--|--------|--------------|----|-------------|------|---------|-----|-| (c)1996-2002, All rights reserved. Disclaimer available upon request.
Rahul Jain <rj...@sid-1129.sid.rice.edu> writes: > Symbols are objects that are used as uniqified identifiers... symbolic > identifiers.
Aha, symbols are symbolic identifiers. What is a symbolic identifier? (In my code, I often use small integers as unique identifiers. Are small integers symbols? You might say they are not "symbolic", but then, what *is* "symbolic" according to you?)
> What do YOU define symbols to be?
I don't know. That's why I am asking. Given that symbols seem to be such a fundamental and important concept around here, one should be able to expect that there is a widely agreed-upon, precise definition for that concept.
In article <87pu10uzip....@photino.sid.rice.edu>, Rahul Jain <rj...@sid-1129.sid.rice.edu> wrote:
> > Sounds like "symbols" could be about anything...
> Symbols are objects that are used as uniqified identifiers... symbolic > identifiers.
> What do YOU define symbols to be?
That's how I would define symbols, but apparently that is the false Scheme definition, not the Common Lisp one, and corresponds only to "keywords" in CL.
> Here's the relevance it has to me: in exploring the surprising (to > me) affinity that people have for packages, I discovered that there > is a whole style of programming (which is called here "symbolic > programming") of which I was only dimly aware
I've just learned how to use packages, but I don't mind them, as I had to learn to work with "packages ala Perl" [Perl modules] already. :-)
> I may be wrong, but I think I picked up a fine distinction between > "symbolic programming" (which is pretty much any non-numeric > programming, done in any language), and "symbol programming", which > is specifically the passing around of CL symbols (which live in > packages, and have function and value slots and property lists).
I think that "symbolic programming" is not expressed well as "any non-numeric programming, done in any language".
It seems more accurate to say that "symbolic programming" involves using symbols to represent arbitrary expressions and then manipulating those symbols directly as a component of the computation. Examples of this would include CL macros and (destructuring-bind ...) forms.
A computation done in terms of symbolic processing would involve manipulating the expressions themselves from their initial state into the final state prior to evaluating the expressions for their value bindings. Symbolic computations may legitimately yield results which have no value bindings, such as '(/ X 0), since they do not necessarily evaluate for bindings.
This is not to say that symbols *never* have bindings to values, but that the symbolic portion of the computation doesn't *care* if they do or not.
The alternative would appear to be using strings to represent simple values [i.e. strings as variable value place holder names] and manipulating the value that the variable represents directly. Since the value itself is being manipulated at each stage of the computation, it is not possible for the non-symbolic computation to yield a result which has no value binding, as attempting to manipulate an unbound variable yields an error.
It is possible to do symbolic programming in any Turing complete language, but most of them lack the expressiveness of CL.
-jon -- ------------------ Jon Allen Boone ipmon...@delamancha.org
> Reading this and the couple other posts of yours in this thread seriously > sounds like you are having trouble with depression. Whether major/clinical > depression or "just" passing depression from problems, it can tear you up > and should NOT be taken lightly. Look for more information, and seek help. > Really.
>> sorry about being off topic, just there is no one really to tell.
I am fine now, I am just like that sometimes. I try not to let it effect things too much. as far as I know I have allways been like this, and really what does it matter to anyone besides me?... I have been fine recently.
sometimes (like then) I just go off about something and end up making a fool of myself. as long as I don't talk about something non-technical then nobody seems to notice...
sometimes I wonder if my girlfriend has ever noticed, or if she has a problem with it. I try what I can to avoid screwing things up.
for all I know it doesn't really exist as I have often thought I have had things that I didn't, and I can't seem to identify the variation.
I can force myself to look cheery when dealing with people anyways, and most of the time that works well enough.
> * Bruce Hoult <br...@hoult.org> writes: > > I may be wrong, but I think I picked up a fine distinction between > > "symbolic programming" (which is pretty much any non-numeric > > programming, done in any language), and "symbol programming", which > > is specifically the passing around of CL symbols (which live in > > packages, and have function and value slots and property lists).
> I think that "symbolic programming" is not expressed well as > "any non-numeric programming, done in any language".
> It seems more accurate to say that "symbolic programming" involves > using symbols to represent arbitrary expressions and then > manipulating those symbols directly as a component of the > computation. Examples of this would include CL macros and > (destructuring-bind ...) forms.
> A computation done in terms of symbolic processing would involve > manipulating the expressions themselves from their initial state > into the final state prior to evaluating the expressions for their > value bindings. Symbolic computations may legitimately yield > results which have no value bindings, such as '(/ X 0), since they > do not necessarily evaluate for bindings.
This sounds far too narrow a definition to me.
First, why do the symbols need to represent an "expression"? Second, why do you need to "[evaluate] the expressions for their value bindings".
This sounds like a definition of symbolic mathematics (integration, differentiation, etc), not of "symbolic programming" in general.
As a counter-example, I would consider the "add-a-gram" puzzle discussed here a few months ago to be an example of symbolic programming, but it doesn't fall within your definition.
Bruce Hoult wrote: > In article <87pu10uzip....@photino.sid.rice.edu>, > Rahul Jain <rj...@sid-1129.sid.rice.edu> wrote:
>> > Sounds like "symbols" could be about anything...
>> Symbols are objects that are used as uniqified identifiers... symbolic >> identifiers.
>> What do YOU define symbols to be?
> That's how I would define symbols, but apparently that is the false > Scheme definition, not the Common Lisp one, and corresponds only to > "keywords" in CL.
Why does the above sentence only apply to CL keywords? Are symbols in other packages not unique or not usable as identifiers?
>> Well... those are all useful in making the concept practical, and the >> "name" slot simply gives a concrete representation of the name,
> Let me just check if I got this right:
Let me just quote the Common Lisp HyperSpec: In the description of the system class SYMBOL you can find the following sentence:
"Symbols are used for their object identity to name various entities in Common Lisp, including (but not limited to) linguistic entities such as variables and functions."
Matthias Blume wrote (quoting Rahul):
> You wrote, answering the question of "what is a symbol":
The above quote would be an appropriate answer to that question.
Rahul wrote: > A data object that has some name and that name is what identifies that > object.
This is a correct statement. Probably with the addition "In the context of a package in that this symbol is accessible."
Matthias Blume wrote (quoting Rahul):
> Now you write:
> [ ... ] the symbol itself IS the name/identifier.
This is a correct statement too. The symbol is uniquely identified and can therefore serve as an identifier for another thing (by building up the needed relations).
Matthias Blume now concludes:
> Taken together, this gives:
> [A symbol is] a data object that has itself and [it] itself is what > identifies [it].
This is complete (constructed) nonsense. The first sentence talked about the possibility to find a particular symbol by a name and the second sentence talked about using the uniqueness of this symbol to name/identify other things (and obviously even the symbol itself).