Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
the "loop" macro
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 51 - 75 of 131 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
John Foderaro  
View profile  
 More options Aug 28 2001, 2:54 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 28 Aug 2001 11:55:11 -0700
Local: Tues, Aug 28 2001 2:55 pm
Subject: Re: the "loop" macro
 You guys make it sounds like the ANSI CL standard was handed down by God and it
dare not be criticized.

 It's not only our right to criticize it it's our *responsibility*.    The
language will never get better if we don't.  

 I've written a lot of lisp code and I've read and debugged a lot of lisp code
written by others.  I have the right and responsibility to codify my experiences
with the hope that others can learn from it.   Some are so blinded by faith that
they believe that everything in the CL spec is divine.   The fact is that it was
designed by committee.  It was a compromise.  Not everything in it is a great
idea, or even a good idea.

 The sad thing is that the religious zealots seem to have taken over this
newsgroup (or at least they are the loudest).   I laugh at them and I hope you
do too.  I hope that I can get a message through to the scientists out there who
understand that CL is just a language with good points and bad points and that
we must figure out how to make CL better and continually relevant to the current
computing world.

-john foderaro
 franz inc.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wade Humeniuk  
View profile  
 More options Aug 28 2001, 3:04 pm
Newsgroups: comp.lang.lisp
From: "Wade Humeniuk" <humen...@cadvision.com>
Date: Tue, 28 Aug 2001 13:03:46 -0600
Local: Tues, Aug 28 2001 3:03 pm
Subject: Re: the "loop" macro
I like how you open the stream/cap on the bottle!

Wade


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kent M Pitman  
View profile  
 More options Aug 28 2001, 4:11 pm
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@world.std.com>
Date: Tue, 28 Aug 2001 20:09:21 GMT
Local: Tues, Aug 28 2001 4:09 pm
Subject: Re: the "loop" macro

John Foderaro <j...@xspammerx.franz.com> writes:
>  You guys make it sounds like the ANSI CL standard was handed down by
> God and it dare not be criticized.

I didn't see anyone say that.

>  It's not only our right to criticize it it's our *responsibility*.    The
> language will never get better if we don't.  

I don't think anyone disagrees here.

>  I've written a lot of lisp code and I've read and debugged a lot of lisp
> code written by others.  I have the right and responsibility to codify my
> experiences with the hope that others can learn from it.   Some are so
> blinded by faith that they believe that everything in the CL spec is divine.
> The fact is that it was designed by committee.  It was a compromise.  Not
> everything in it is a great idea, or even a good idea.

Still looking for the point of disagreement.  Don't see it yet.

>  The sad thing is that the religious zealots seem to have taken over this
> newsgroup (or at least they are the loudest).

I'll assume this refers to me.  I wish you'd just name people by name so they
could respond.  Responding to vague references always feels weird.  Who else
does this refer to?  Don't you have a "right and responsibility" to say who
it is you disagree with, both so people can know not to trust them/us and
so they can fairly know they are being commented on and defend themselves?

>  I laugh at them and I hope you do too.  I hope that I can get a message
> through to the scientists out there who understand that CL is just a
> language with good points and bad points and that we must figure out how
> to make CL better and continually relevant to the current computing world.

No problem here per se.

I think the only thing people are disagreeing with you on are whether
labeling a few isolated comments a "coding style" is fair.  It would be
as if I wrote a book called "Good Form in Woodworking" and it contained
only the text:  "Don't forget to sand the wood when you're done.  I hate
splinters."  People critiquing my "good form" book would not be meaning
"I like splinters."  They would be meaning "There is more to the aesthetic
of woodworking than this and you've omitted so much as to make the title
meaningless."  It might suffice to call my masterwork "One Thing To Remember
When Building Things Out of Wood", but even then, people would start to
resent the sheer number of book-covers in my collected works "Encycloopedia",
which they would imagine later including another "book" called "Oh, I forgot,
sometimes it's helpful to dust these things once in a while" (with
contained content that is a substring of the title), and "It helps to have
tools like knives or saws to cut the wood".

One reason I like attending talks on topics, even topics I don't understand
is to acquire "lists".  Indeed, it's one way I judge the usefulness of a
speaker on a topic I don't understand is whether they provide me with any
kind of exhaustive partition of the space they are talking about, because
such partitions help me to understand the space of what is and is not being
talked about.  A talk about "Some art is ugly." is vague and hard to put
into context.  But a talk that takes a position like "Art must be either
beautiful, political, or expensive." gives me a way to evaluate the statement
it's making plus, if I buy into the statement, a way to carve out
subproblems in understanding the space.

If people are reacting to anything, it is perhaps that they've bought into
my claim that all style is about trade-off and that you can't make good
style trade-offs unless you understand the things that are being gained and
the things being lost.  What's funny is that almost by definition in this
theory, there are no absolutes.  I'm not advocating anyone simply believe
me all the time, nor am I advocating people ignore you all the time.  The
funny thing is that you refer to "religious zealots" and people being
"blinded by faith", yet you yourself are the one who is offering up style
rules like "Never use the extended loop macro." that admit no variance.
Your own argument for this position says:

 | People who use loop always say, "I just use it for small things."
 | But once started down this path they can't help but use it in more
 | and more complex ways until they take joy in writing code that
 | cannot be deciphered.

which seems to imply that there might be acceptable uses but that you don't
want to be flexible enough to allow those uses for fear of the bad uses,
and so you'd rather also disallow even the acceptable uses.  I find that
pretty uncompelling to the point of patronizing.

- - - -

By the way, also, in your point #1 you where you talk about why IF, WHEN,
and UNLESS are bad, you say:

 | No other language includes an inverse conditional

You, of course, leave out the natural languages.  Yes, it's true, they
aren't programming languages.  However, they ARE natural, and
therefore I think prima facie evidence that it is natural to speak in
these terms.  If anything, one might say, all other programming
languages besides Lisp are unnatural in this sense.

English has a single word devoted to "unless".  The romance languages
typically use a construction like the Spanish "a menos que", but it does
not make appeal to negated-if.  I've seen research that says that people
think of inverted conditionals more "efficiently" than negated conditionals
because they  think of unless not as

                                       consequent
                                    /
  test --- [ negate ] ---- branch

                                    \
                                       alternative  

but rather as

                    alternative
                  /
  test --- branch
                  \
                    consequent

getting exactly the speed gain that machine language does when you complement
a conditional; no increased execution time.  The stuff I recall seeing (sorry,
I don't have a cite but would be willing to try to track it down if pressed)
also mentioned that it takes less short-term memory to mentally parse
statements with UNLESS because they don't add to the pile of "chunks" being
assembled, and that people can understand and competently manipulate negations
to deeper depth when UNLESS is involved than when WHEN/NOT is involved because
"Unless I'm not here, you can go out to play." doesn't feel as doubly-negative
as "When I'm not not here, you can go out to play."

This omits also discussion of the value of establishing and promoting focus
in discussion, which is why you'd want to choose between "When I'm here"
and "Unless I'm not here" ... these each have subtly different kinds of
emphasis which may be important to the speaker and are often lost in
programming languages.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Dorai Sitaram  
View profile  
 More options Aug 28 2001, 4:56 pm
Newsgroups: comp.lang.lisp
From: d...@goldshoe.gte.com (Dorai Sitaram)
Date: 28 Aug 2001 20:56:35 GMT
Local: Tues, Aug 28 2001 4:56 pm
Subject: Re: the "loop" macro

I am probably not alone in feeling awkward about using
IF* because it's not "core", but I must grant that it
seems like it would make maintaining and editing
existing code easier.  As things are now, if I modify a
conditional by adding another branch or adding _to_ an
existing branch, I may typically be also required to
make changes that go beyond that simple change: such as
reworking a WHEN or UNLESS into an IF or COND or vice
versa, a WHEN into an UNLESS or vice versa, an IF into
a COND or vice versa, or adding or deleting a
PROGN.  IF* avoids all that.

I agree that natural language profits from having a
variety of conditionals and negated conditionals, but
while editing pre-existing code, having to shuffle
keywords in a way not immediately relevant to the
change at hand seems tedious and error-prone.  Well, at
least I've been there.  I am not sure John
Foderaro highlights _this_ particular point in favor of
IF*.

--d


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Aug 28 2001, 5:27 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 28 Aug 2001 14:14:18 -0700
Local: Tues, Aug 28 2001 5:14 pm
Subject: Re: the "loop" macro
Why do I argue against ideas I don't like rather than make it personal and argue
against specific people?   There are a number of reasons.  First I feel there's
a lot more content if you stick to ideas rather than hurling childish insults.
Second I don't like the "character assassination by search engine" that goes on
these days where people checking up on you by entering your name find lots of
posts attacking your character.  And finally given that news articles are
threaded there is ample context to find the message one is referring to.

In fact in this case I wasn't thinking of you.   Are you a CL zealot?  Here's a
way to find out.  Would you insist that a collection of individuals remove use
of a macro from their published code (even if you may never see that code) just
because that macro isn't an official Common Lisp macro?

       This is why I urge Franz Inc to remove IF* from their published code.  If
       you are in the business of selling Common Lisp products, just follow the
       standard.

If you answer yes then you are a zealot.

>  I think the only thing people are disagreeing with you on are whether
>  labeling a few isolated comments a "coding style" is fair

English is a huge and very complex language.  Yet "The Elements of Style" by
Stunk and White is only 105 pages (and they are small pages to boot).  No one
has ever put them down for attempting to codify good English style in so small a
book.  In fact this is the best known style guide.

I've seen a lot of Lisp code and wrote down the few rules that have the most to
do with making the code readable.  I'd always planned on writing more but
nothing has irked me enough to add to the list.   It's my right to publish that
and I would urge everyone else to do likewise.  Try to codify what you consider
good programming style and practice it.

As for unless.  Yes natural languages have it but that does not make it a good
thing for programming languages.   You have to mentally insert the 'if not' and
for me that slows down the reading of the program.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Hallvard B Furuseth  
View profile  
 More options Aug 28 2001, 5:39 pm
Newsgroups: comp.lang.lisp
From: Hallvard B Furuseth <h.b.furus...@usit.uio.no>
Date: 28 Aug 2001 23:37:09 +0200
Local: Tues, Aug 28 2001 5:37 pm
Subject: Re: the "loop" macro

John Foderaro <j...@xspammerx.franz.com> writes:
> Why do I argue against ideas I don't like rather than make it personal
> and argue against specific people?  (...)

Good point.  Just make it specific enough that we can tell _which_
idea(s) you refer to.

> English is a huge and very complex language.  Yet "The Elements of
> Style" by Stunk and White is only 105 pages (and they are small pages
> to boot).  No one has ever put them down for attempting to codify good
> English style in so small a book.  In fact this is the best known
> style guide.

Fair enough.  Note they just call it "style", though.  It was your
page's name "coding *standard*" which got to me, in particular since
"standard" has a stronger meaning in programming than in natural
language.

--
Hallvard


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "OT: unnatural natural languages (was: Re: the "loop" macro)" by Simon András
Simon András  
View profile  
 More options Aug 28 2001, 5:42 pm
Newsgroups: comp.lang.lisp
From: asi...@math.bme.hu (Simon András)
Date: 28 Aug 2001 23:42:40 +0200
Local: Tues, Aug 28 2001 5:42 pm
Subject: OT: unnatural natural languages (was: Re: the "loop" macro)
Kent M Pitman <pit...@world.std.com> writes:

> By the way, also, in your point #1 you where you talk about why IF, WHEN,
> and UNLESS are bad, you say:

>  | No other language includes an inverse conditional

> You, of course, leave out the natural languages.  Yes, it's true, they

Not all of them. Hungarian doesn't have 'unless', unless you count
certain hacks that purport to fill this gap. The primary translation
of 'unless' is 'ha nem' ('if not') in the first dictionary I opened.

Not that it affects your argument. :-)

Andras


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "the "loop" macro" by Hallvard B Furuseth
Hallvard B Furuseth  
View profile  
 More options Aug 28 2001, 5:44 pm
Newsgroups: comp.lang.lisp
From: Hallvard B Furuseth <h.b.furus...@usit.uio.no>
Date: 28 Aug 2001 23:44:57 +0200
Local: Tues, Aug 28 2001 5:44 pm
Subject: Re: the "loop" macro
[reposting - I lost a paragraph]

John Foderaro <j...@xspammerx.franz.com> writes:
> Why do I argue against ideas I don't like rather than make it personal
> and argue against specific people?  (...)

Good point.  Just make it specific enough that we can tell _which_
idea(s) you refer to.

> English is a huge and very complex language.  Yet "The Elements of
> Style" by Stunk and White is only 105 pages (and they are small pages
> to boot).  No one has ever put them down for attempting to codify good
> English style in so small a book.  In fact this is the best known
> style guide.

Fair enough.  Note they just call it "style", though.  It was your
page's name "coding *standard*" which got to me, in particular since
"standard" has a stronger meaning in programming than in natural
language.

Lisp coding standards, not Franz' Lisp coding standards or Foderaro's
Lisp coding standards.

--
Hallvard


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Haugan  
View profile  
 More options Aug 28 2001, 6:00 pm
Newsgroups: comp.lang.lisp
From: Erik Haugan <e...@haugan.no>
Date: Tue, 28 Aug 2001 21:59:59 GMT
Local: Tues, Aug 28 2001 5:59 pm
Subject: Re: the "loop" macro
* Kent M Pitman -> John Foderaro

> By the way, also, in your point #1 you where you talk about why IF, WHEN,
> and UNLESS are bad, you say:

>  | No other language includes an inverse conditional

> You, of course, leave out the natural languages.  Yes, it's true, they
> aren't programming languages.  However, they ARE natural, and
> therefore I think prima facie evidence that it is natural to speak in
> these terms.  If anything, one might say, all other programming
> languages besides Lisp are unnatural in this sense.

Actually, Perl has unless, for exactly the reason you give, according to the
Camel Book (Programming Perl by Larry Wall et al).  I used to program Perl
for a couple of years, and I liked it's tendency to do things in ways
natural to people (and at the same time I learned to hate it's
counterintuitive ways, sloppiness and limitations).

If we look beyond trivialities like "inverse conditionals", a problem is
that people are more likely to believe that "anything goes" in languages
that use more natural (and complex) concepts, so an in depth knowledge isn't
necessary.  In general, I've found that more complex languages take longer
to master, but are easier to use when you do.

Erik


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Thomas F. Burdick  
View profile  
 More options Aug 28 2001, 7:18 pm
Newsgroups: comp.lang.lisp
From: t...@conquest.OCF.Berkeley.EDU (Thomas F. Burdick)
Date: 28 Aug 2001 16:18:11 -0700
Local: Tues, Aug 28 2001 7:18 pm
Subject: Re: the "loop" macro
Kent M Pitman <pit...@world.std.com> writes:

> By the way, also, in your point #1 you where you talk about why IF, WHEN,
> and UNLESS are bad, you say:

>  | No other language includes an inverse conditional

Wow, I just went and checked that to make sure it wasn't taken out of
context or misquoted, but it's right alright.  It's also absolutely
false.  Off the top of my head, Perl has `unless', and SmallTalk has
`ifFalse:'.  Of course various assembly languages have JN* (Jump if
Not Zero, etc), which is similar.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Aug 28 2001, 7:45 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Tue, 28 Aug 2001 23:44:36 GMT
Local: Tues, Aug 28 2001 7:44 pm
Subject: Re: the "loop" macro
* John Foderaro <j...@xspammerx.franz.com>

> You guys make it sounds like the ANSI CL standard was handed down by God
> and it dare not be criticized.

  Like most criminals who suddenly get this great political insight into
  the law-making process when they get caught, you, too, confuse breaking
  community standards with criticizing them.  If you had criticized them
  while upholding them, you would have gained respect and people would have
  listened to you, because it would have meant that you would have followed
  the _changing_ consensus and would be interested in helping build it.
  Instead, you have a criminal mind, are a loose cannon and a person who
  decides on his own when to uphold the laws and when to break them.  This
  is what a society of laws cannot tolerate in its citizens and community
  based on a standard cannot tolerate in its members.  You, sir, have no
  business talking about criticizing any standards, because you obviously
  would not follow a _changed_ standard, either, unless, of course, it was
  your own, in which case the whole point of a standard is moot.

> It's not only our right to criticize it it's our *responsibility*.  The
> language will never get better if we don't.

  Most civilized people understand the difference between obeying the laws
  while criticizing them and breaking them in a childish expression of
  one's inability to articulate sufficiently thoughtful arguments to sway
  those of a different mind to rethink their position and reach compromise.

> Some are so blinded by faith that they believe that everything in the CL
> spec is divine.

  You should realize that this statement is a very grave insult to your own
  intelligence and has absolutely no bearing on what anyone else thinks or
  believes, simply because it is such a fucking insane thing to say.

> The fact is that it was designed by committee.  It was a compromise.  Not
> everything in it is a great idea, or even a good idea.

  _Some_ of us prefer to live in a society where people respect each other
  for their competence and professionalism despite their differences of
  personal opinions and work through their conflicting desires within the
  framework of compromise and imposed ritual, simply because we fully
  understand what the alternative entails.

  These are among the wider implications of your nutty "coding standards",
  and people who are way smarter than you figured it out just reading them.

  The wider implication of your incredibly stupid disrespect for compromise
  is that you fully expect to _remain_ a stranger to the community.  You do
  not respect the fact that compromise is what makes it possible for lots
  of people to work together for a common goal.  That means that you do not
  share in the common goal.  With your disrespect for criticism of your
  ways and your repetition of the exact same line of defense as last time
  we fought over conformance, you have shown ourself to be an _enemy_ of
  the common goal of those who base their work, money, and livelihood on
  the standard and the ability of professional engineers to implement it.

  I doubt that you will actually get the message, but it is not that you do
  something different, it is that you are so hostile to the ways you think
  you have improved upon.  Case in point: I quit the SGML business when I
  could no longer work with that stupid standard.  I can rant and rave
  freely about its braindamaged design and do any damn thing I please,
  _because_ I quit working with SGML.  No customers are harmed because of
  my strong criticism of SGML and XML.  Nobody has based their work and
  their investments on my professional opinion about SGML for five years.
  It is safe for me to be destructive to that community, because those who
  might follow me are free to do so.  I did _not_ make a huge public stink
  about why SGML was a crock of shit when I quit, either.  That would have
  been seriously unprofessional and damaging personally to people I cared
  about and who had cared about me.  Actually finding a decent way out took
  me half a year, but I knew I could no longer be part of that community
  and I took that very seriously, both personally and professionally.

  However, in your case, you are still a serious force within a serious
  vendor serving this community.  Your stupidity and reckless disregard for
  your customers and those who still trust Franz Inc to deliver products
  according to specification _will_ harm people and their investments.
  This is not about IF* and LOOP, it is about whether Franz Inc will have
  engineers working on their products who are professional enough to do a
  good job implementing a standard they disagree with.  I would frankly
  want a vendor who agreed with me that the standard was good for me.  This
  is why I could not use CLISP, for instance -- its arrogant, nutty creator
  went on record to tell the world he had broken things on purpose.

> The sad thing is that the religious zealots seem to have taken over this
> newsgroup (or at least they are the loudest).  I laugh at them and I hope
> you do too.  I hope that I can get a message through to the scientists
> out there who  understand that CL is just a language with good points and
> bad points and that we must figure out how to make CL better and
> continually relevant to the current computing world.

> -john foderaro
>  franz inc.

  Signing that moronic, self-serving "to hell with the community" crap with
  the Franz Inc company name makes it _much_ harder for me to work with
  Franz Inc, and I am already strained because of your licensing policies.
  I think you fail to appreciate the harm you do to your own livelihood
  with the _unprofessional_ behavior you conduct in public when people
  criticize _your_ supposedly "personal" opinions, which really are not at
  all personal.  They are your professional opinions, and while signing
  with the Franz Inc company name, you indicate that if anybody wants to
  deal with your company and with you professionally, they will also have
  to deal with a company that goes public with a "fuck the standard"
  attitude that I personally consider to be so amazingly self-destructive
  that I have to question my involvement with Franz Inc because of it.

  It was your retarded responses to the case issue that caused me to lose
  much of my interest in helping Franz Inc the last time you aired your
  stupid ego in this newsgroup, and I am frankly so disappointed with your
  reckless lack of concern for the community and what it has agreed on that
  I am probably not going to recommend that anyone I know use Allegro CL or
  work with such an _unprofessional_ crowd as you imply that Franz Inc is
  by signing with the company name.  I know your position in the company
  well, and I am loathe to give you business when I believe that by doing
  so, I am helping you destroy the community I wish to be a part of.  When
  this case issue came up, and you did such a horribly unintelligent job of
  it, I lost all trust in your code.  I do not know which language you
  really write your code in, but it is _not_ Common Lisp, and you will not
  cater to those who want to use Common Lisp.  You have demonstrated that
  you will disregard the standard in favor of your own personal opinions,
  and that is simply so _unprofessional_ that I cannot work with in _any_
  professional capacity.

  Just like when you blew it on the case issue and never realized what harm
  you had done, this is another sad day for Common Lisp.  If I were in
  posititon to determine your employment with Franz Inc, I would fire you
  because of the destructiveness you bring to the community, but I am not
  in that position.  I will, however, need to know from those who are, what
  Franz Inc does to keep you away from those parts of its product line that
  could be influenced by your utter disrespect for the community standard
  that your customers want you to implement.  I have been on your case as
  long as I have worked with Franz Inc to ensure that conformance is an
  issue, but as time goes on, that commitment is hollowed out by you in
  particular, despite the valiant efforts of your colleagues to assure me
  that conformance is a priority.  Yet, you seem to take _pride_ in your
  antisocial behavior and your disrespect for compromise so I leave you no
  hope of recovery and will have to work around you if I continue to work
  with Franz Inc, which I am, right now, inclined to terminate, but I will
  calm down and consider a _compromise_ because there are things Franz Inc
  does very well that I want both myself and my clients to benefit from.
  In the spirit of your disdain for compromise, however, I am not going to
  compromise on your position.  If Allegro CL is to be seen as a viable
  implementation of Common Lisp, as defined by the community you hate in
  the standards document you hate, Franz Inc will have to do some serious
  damage control measures to convince people that you had no opportunity to
  break anything people will rely on in production systems.

  I do not understand what this is _really_ about, but if you really wish
  to self-destruct, please be _decent_ enough to do it away from people.
  If anyone else had so many personal issues with the standard as you do, I
  would have urged them to leave and find something else to do.  I quit
  working with SGML over less than you seem to cling to in Common Lisp.

  And I hope for your personal sanity that you can afford your laughter.

///


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Aug 28 2001, 7:55 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Tue, 28 Aug 2001 23:55:14 GMT
Local: Tues, Aug 28 2001 7:55 pm
Subject: Re: the "loop" macro
* John Foderaro <j...@xspammerx.franz.com>

> Thanks for the wonderful posting.  I have never laughed so hard at a
> newsgroup posting.  There are so many gems in your posting that it's hard
> to pick out the best, but if I had to I'd say that it was the part where
> you say that you give me (and I presume the rest of the world) permission
> to think however we want however it is absolutely forbidden to *publish*
> thoughts contrary to what Erik Naggum thinks.  That is so rich!!

  Please take this paragraph and a what I _actually_ wrote to your nearest
  psychiatric ward and ask to be committed.  You need no other documentation.

  Goodbye, John Foderaro.  It has not been a pleasure knowing you.

///


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Gareth McCaughan  
View profile  
 More options Aug 28 2001, 8:13 pm
Newsgroups: comp.lang.lisp
From: Gareth.McCaug...@pobox.com (Gareth McCaughan)
Date: Wed, 29 Aug 2001 00:39:49 +0100
Local: Tues, Aug 28 2001 7:39 pm
Subject: Re: the "loop" macro
Kent M Pitman wrote (to John Foderaro):

> By the way, also, in your point #1 you where you talk about why IF, WHEN,
> and UNLESS are bad, you say:

>  | No other language includes an inverse conditional

> You, of course, leave out the natural languages.  Yes, it's true, they
> aren't programming languages.  However, they ARE natural, and
> therefore I think prima facie evidence that it is natural to speak in
> these terms.  If anything, one might say, all other programming
> languages besides Lisp are unnatural in this sense.

Not to mention Perl, which has "unless". And the various
languages that have "inverse conditionals" for loop
termination tests (the choice sometimes, but not always,
being conflated with the choice of which end to put the
test at).

--
Gareth McCaughan  Gareth.McCaug...@pobox.com
.sig under construc


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jochen Schmidt  
View profile  
 More options Aug 28 2001, 10:05 pm
Newsgroups: comp.lang.lisp
From: Jochen Schmidt <j...@dataheaven.de>
Date: Wed, 29 Aug 2001 03:56:36 +0200
Local: Tues, Aug 28 2001 9:56 pm
Subject: Re: the "loop" macro

Dorai Sitaram wrote:

> I am probably not alone in feeling awkward about using
> IF* because it's not "core", but I must grant that it
> seems like it would make maintaining and editing
> existing code easier.  As things are now, if I modify a
> conditional by adding another branch or adding _to_ an
> existing branch, I may typically be also required to
> make changes that go beyond that simple change: such as
> reworking a WHEN or UNLESS into an IF or COND or vice
> versa, a WHEN into an UNLESS or vice versa, an IF into
> a COND or vice versa, or adding or deleting a
> PROGN.  IF* avoids all that.

This may probably be true (I have made no such experiences so far)
But I personally explicitely like the diversity of conditionals
in CL because one single construct says so much more on what the code is
doing. If I always choose the "most appropriate conditional" in
a situation I can see with less work what is happening.

The simple fact of using e. g. WHEN or UNLESS gives me the immediate
information:

"There will only be a consequent no alternative"

If IF is used
"There will be exactly a consequent and an alternative"
(If you always use WHEN/UNLESS in the consequent-only case)

If you use COND
"Something more complex is going to happen - so be careful"
 (since the "easy" cases are already handled by WHEN, UNLESS and IF)

Things like IF, WHEN, UNLESS, COND, CASE, EVERY, SOME, OR, AND... may in
several situations provide you immediatley with information you would have
to dig for if you would "encode" them by using e. g. IF*.

> I agree that natural language profits from having a
> variety of conditionals and negated conditionals, but
> while editing pre-existing code, having to shuffle
> keywords in a way not immediately relevant to the
> change at hand seems tedious and error-prone.  Well, at
> least I've been there.  I am not sure John
> Foderaro highlights _this_ particular point in favor of
> IF*.

Well... changing conditionals seems to me a bit more then merely editing
text - maybe it is worth the additional time you have to think on
_what_ is the best way to write it...

ciao,
Jochen

--
http://www.dataheaven.de


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Aug 28 2001, 10:42 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Tue, 28 Aug 2001 19:40:54 -0700
Local: Tues, Aug 28 2001 10:40 pm
Subject: Re: the "loop" macro

 Does anyone else feel that I don't have the right to define my own macro to express
the conditional statement?

 Does anyone else feel that I don't have the right to criticize: if, when, unless and
loop?

 If it's antisocial to extend the Common Lisp language then what are we going to do
with the guy who wrote the 'iterate' macro that's been referred to so many times in
this thread.  An extension that big puts my little if* to shame.  Surely someone who
designs something like that is the most antisocial of all.

 You readers of this newgroup set the tenor of the lisp community.  Shall it be as
Erik wants where criticism of the standard is squelched, that new ideas are forbidden?  

 You the lisp community has to decide.  Erik may speak the loudest but don't be put
off by that.  Speak your own mind.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wade Humeniuk  
View profile  
 More options Aug 29 2001, 12:14 am
Newsgroups: comp.lang.lisp
From: "Wade Humeniuk" <humen...@cadvision.com>
Date: Tue, 28 Aug 2001 21:53:28 -0600
Local: Tues, Aug 28 2001 11:53 pm
Subject: Re: the "loop" macro

"John Foderaro" <j...@unspamx.franz.com> wrote in message

news:MPG.15f5f5f8bd5ab79e9896ff@news.dnai.com...

>  Does anyone else feel that I don't have the right to define my own macro
to express
> the conditional statement?

>  Does anyone else feel that I don't have the right to criticize: if, when,
unless and
> loop?

Of course you have the right to create your own macro.

Here are my thoughts when I first encountered if*.   I tried to port
AllegroServe to LispWorks, the first thing I did was try to load htmlgen but
I immediately got a complaint about there being no if*.  So I stripped it
out the if* since LispWorks did not have one built-in and I did not know for
sure how it worked.  Its fine that ACL has a if*, but I found it annoying
trying to see how it worked in LispWorks. The main reason I did not use if*
is that I had not used it and was not familiar with its ins an outs.  I
think I understood it but I did not try to play with it too much.  I suppose
I could have got a compatibility package for if*, but, how could I be sure
that it behaves the same as the ACL if*??  After mulling over if* and what
it can do, I can say that I would not use it, unless I had to.  I do use
loop, unless, when, cond, case, if....  Why?  I have no good answer for you,
only that I am more comfortable using cond for if/else/elseif decision
handling.

As for loop, I got some old code for postscript generation from the AI
respository and I noticed code for an older version of loop.  Not quite the
same, but obviously a predecessor to the CL loop.  My comment is, that if
there was no loop today, somebody would invent it.  It has its place because
those that programmed before, decided, through experience, that it was
needed and that it made programming easier.  The reason I think it was
needed was that programmers got tired of writing the macro expansion for
loop over and over again.  Eg.

CL-USER 10 > (loop for x in '(1 2 3 4 5) collect (1+ x))

expands to---->

(MACROLET ((LOOP-FINISH () '(GO #:|end-loop-461|)))
  (LET ((X NIL)
        (#:|tail-464| '(1 2 3 4 5))
        (#:|by-465| 'SYSTEM:CDR$CONS))
    (LET ((#:|accumulator-462| (LIST NIL)))
      (DECLARE (TYPE LIST #:|accumulator-462|))
      (LET ((#:|aux-var-468| #:|accumulator-462|))
        (BLOCK NIL
          (TAGBODY
           #:|begin-loop-460| (PROGN
                               (WHEN
                                (OR (ENDP #:|tail-464|))
                                (GO #:|end-loop-461|))
                               (LET
                                ((#:|temp-467|
                                  (FUNCALL #:|by-465| #:|tail-464|))
                                 (#:|temp-466|
                                  (SYSTEM:CAR$CONS #:|tail-464|)))
                                (SETQ X #:|temp-466|)
                                (SETQ #:|tail-464| #:|temp-467|)))
                   (SETQ #:|aux-var-468|
                         (LAST (RPLACD
                                #:|aux-var-468|
                                (LIST (1+ X)))))
                   (GO #:|begin-loop-460|)
           #:|end-loop-461| (RETURN-FROM
                             NIL
                             (CDR #:|accumulator-462|))))))))

Though the above is spaghetti, I think code used to be written that way for
efficiency reasons.  The days of TAGBODY and GO.

You were around then, maybe you remember how loop actually came about?

As for if*, how did it come about?

Just as an aside, to make sure that every part that is being critizied is a
macro,...

The strangest thing,...

In LispWorks, loop is a function!  (What the!!!!)

CL-USER 7 > #'loop
#<function LOOP 20B36F1A>

CL-USER 8 >

Wade


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Coby Beck  
View profile  
 More options Aug 29 2001, 12:15 am
Newsgroups: comp.lang.lisp
From: "Coby Beck" <cb...@mercury.bc.ca>
Date: Wed, 29 Aug 2001 04:03:32 GMT
Local: Wed, Aug 29 2001 12:03 am
Subject: Re: the "loop" macro

"John Foderaro" <j...@unspamx.franz.com> wrote in message

news:MPG.15f5f5f8bd5ab79e9896ff@news.dnai.com...

>  Does anyone else feel that I don't have the right to define my own macro
to express
> the conditional statement?

you absolutely have that right.  No one has stated or implied otherwise.
You are misrepresenting your oppositions point of view to make it seem
ridiculous.

>  Does anyone else feel that I don't have the right to criticize: if, when,
unless and
> loop?

Again, I think you have that right.  We all have rights, but every right
comes with some degree of responsibility and this degree varies tremendously
on our cultural/social/business/etc positions.  I offer that statement good
faith  with no animosity, please think about it and please don't reply
without sincerely trying to undestand it as it applies to this whole debate,
not just the line above.

>  If it's antisocial to extend the Common Lisp language then what are we

going to do

What is antisocial is writing something to *replace* parts of the standard
language _and_then_ *defining* good style as using your tool and only your
tool.  That says "use my marbles or I won't play with you".  That is
definitely anti-social.

> with the guy who wrote the 'iterate' macro that's been referred to so many
times in
> this thread.  An extension that big puts my little if* to shame.  Surely
someone who
> designs something like that is the most antisocial of all.

>  You readers of this newgroup set the tenor of the lisp community.  Shall
it be as
> Erik wants where criticism of the standard is squelched, that new ideas

are forbidden?

That is an unfair representation of what Erik has written.  By the way, he
is not at all your only vocal opponent in this.  I think you are trying to
use his controversial behaviour to gain support, regardless of the issue at
hand.

>  You the lisp community has to decide.  Erik may speak the loudest but
don't be put
> off by that.  Speak your own mind.

If you have read my postings before, I think you know that backing down from
Erik is not one of my faults, more to the contrary...

He has made very good points about the difference between criticizing a
formally established standard and disregarding it.  I'm not sure you have
tried to understand his position.  I, speaking my own mind, agree.  He, and
others, made good points about your document missing by a mile the line
between personal taste and sound, general advice.  I agree, again.  He noted
that the wording you chose and the tone you set are by implication insulting
the many fine people who do not agree.  This is undeniable, really.  I think
there are things in these and other arguments you should be able to
acknowledge without backing down on not liking loop and hoping to add if* to
the language.

I don't like if* from the first time i encountered it 3 weeks into learning
the language... so what (I did not know at the time it was not standard).  I
see your points in its favour and they are not facile.  I still would not
tell anyone to "avoid it like the plague".  If I were teaching a class and
had students who used it, I would not demand that they stop.  By your tone,
you would force people to stop using loop at least, and maybe even if, when
and unless.  This attitude worries me *only* because of where you work.  I
already find it disturbing that Franz views its customers as "Value Added
Resellers" of *their* technology.  To me this is an arrogant
misrepresentation that *they* own/invented lisp.  That document and your
defense of it add to my feeling that this is what you think.

Your position is as an implementer, not an inventer and not a user and that
has its own implications different from the other positions.  You are
welcome to criticize ANSI CL (how could I stop you if I wanted to?) but you
damage us all by advocating its disregard and by putting down parts of it in
such an agressive manner.

Coby
--
(remove #\space "coby . beck @ opentechgroup . com")


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Aug 29 2001, 1:25 am
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Wed, 29 Aug 2001 05:25:39 GMT
Local: Wed, Aug 29 2001 1:25 am
Subject: Re: the "loop" macro
* John Foderaro <j...@unspamx.franz.com>

> Does anyone else feel that I don't have the right to define my own macro
> to express the conditional statement?

  That is not the issue.  Such rights have never been questioned.

> Does anyone else feel that I don't have the right to criticize: if, when,
> unless and loop?

  That is not the issue.  Such rights have never been questioned.

> If it's antisocial to extend the Common Lisp language ...

  That is not the issue.  Nobody has ever even indicated that as the reason.

> An extension that big puts my little if* to shame.  Surely someone who
> designs something like that is the most antisocial of all.

  To those who have studied criminology and recognize the behvioral pattern
  of somebody who is determined not to understand why what he has done is
  under criticism, your chosen line of defense is the most incriminating
  and revealing.  You did this the last time you tried to defend a piece of
  buggy code, too, and it showed us that John Foderaro does not back down.
  Clearly, having the right to denounce the standard that your company is
  asking its customers to trust it to implement for them is more important
  than realizing that by your denouncing what people want to purchase from
  you, you undermine your own livelihood.  Further, distancing yourself
  from the process and pretending to be a victim of conspiracies against
  your "superior solutions" indicates that the standardization process,
  which people trust to produce standards that vendors are supposed to
  agree to implement, is actively _distrusted_ by you and by Franz Inc.

  The message you send is not "we have something better", but instead "We
  hate Common Lisp as it became standardized by a bunch of morons, but do
  come talk to us if you want an implementation of that crock of shit."

  Apparently, you fail to understand that you can improve upon something
  without denouncing what you improve upon.  You do not make something that
  is better than what people already like -- you have to make them hate
  what they have in order for what you have done to be better.  Such is not
  actually improvement -- it is the childish game of "not invented here".
  This is the dangerous part of your personality and what I react to most.
  The dangerous _consequence_ is that you are fully willing to sacrifice
  your professionalism and other people's trust in your competence as a
  programmer with a serious vendor to your personal opinion about matters
  of _zero_ importance to the future of Common Lisp and its market share
  and ability to solve real problems.  Clearly, it is much more important
  to vent your spleen about if, when, unless, and loop than to help build a
  business case for Common Lisp and to help attract people to the language
  ("Use Common Lisp and come join the Common Lisp community and take part
  in the hate campaigns against the best language on earth.").

  Clearly, you do not appreciate that my trying to push Common Lisp to
  people who have the money and the trust in me as a consultant that could
  land Franz Inc another large contract should cause you to beam with love
  for the language your products implement, but instead you spend your time
  denouncing the standard and the process that created it, creating the
  very strong impression in every reasonably intelligent reader of your
  rantings about language misdesign that you have gone elsewhere yourself,
  so why should anyone new to the language ever stick with Common Lisp?

  You will probably never understand this, since you continue to believe
  that you are "innovative" the same way Microsoft is, but the way you ask
  people who actually happen to like Common Lisp to hate it insteead, lest
  they be branded religious zealots and worse, is telling people to stay
  away from John Foderaro's sick mind and anyone who keeps him employed in
  a position where his blind hatred for irrelevant features causes him to
  write and publish buggy code and refuse to understand that it needs to be
  fixed because he thinks the problem is in the specification.

  It is not your changes that causes me to react.  It is your arrogance.
  It is not your desire for improvements more to your liking that causes me
  to react.  It is your intense denunciation of everything that I need to
  entrust my own livelihood and professional reputation to your products.
  It is not the fact that you are a deranged lunatic that makes me want to
  terminate my business dealings with Franz Inc.  It is the fact that they
  keep a deranged lunatic employed in a position where his utter lack of
  professionalism and professional integrity may cause serious damage to my
  own or my client's software in a production setting where bugs you have
  introduced because you do not consider my trust in the specification you
  distrust a valid concern or a reason to write correct code or to fix
  bugs, and hence I will lose money and possibly face lawsuits if I _do_
  trust you.

  I am a businessman, John Foderaro.  You are not.  I deal with people's
  trust in me and my competence every single day.  You have never grasped
  that I question your trustworthiness.  To my paying clients, the only
  thing that matters is my professionalism.  They do not care whether I
  have personal opinions about the products we use or not.  I may thus love
  Allegro CL _personally_ and I may grief in _private_ about the idiocy of
  your self-destructive behavior, but I would be criminally unprofessional
  if I asked a client of mine to invest USD 100,000 in my love for a
  product that cannot be trusted to perform as required by specification
  for such a fantastically stupid reason as one idiot engineer giving a
  higher priority to his dislike for language features over correct code.

  This is a bigger issue than you appear able to understand, John Foderaro.
  Nobody cares what you think about if, when, unless, and loop when they
  face a delay in deployment because of one of your bugs.  Nobody cares
  about your silly coding standards when a project folds because a feature
  in the specification is not supported for "political reasons".  We have a
  standard, and nobody cares where it came from, God, Devil, committee, or
  John Foderaro, but everyone in the kinds of businesses I deal with care
  that it is actually and faithfully implemented.  Based on the evidence
  that you provide about your priorities for Common Lisp and your own code,
  I _must_, because I am a professional, decline to suggest that people who
  would be willing to invest several hundred thousand dollars over the next
  few years on their trust in my word, invest it in Allegro CL.

  In short, your insistence that you be allowed to denounce the standard,
  the standardization process, us "zealots", and everyone who disagrees
  with your fantastically stupid "improvements" and "coding standards", has
  a pretty hefty price tag.  Your employer needs to understand that your
  desire for a John Foderaro Lisp instead of a Common Lisp has caused me, a
  fairly strongly devoted fan of Allegro CL, to abandon Allegro CL as the
  choice implementation platform.  I do not personally consider there to be
  viable alternatives, which means that we will probably use a different
  language.  Now, this has not just happened this once, the last time we
  had a fight over your prioritizing your personal opinions over correct
  implementation of specified language features, I did not even bother to
  waste my time arguing for Common Lisp.  That project went with Java,
  simply because I was too personally exhausted by your idiotic behavior to
  want to fight for Allegro CL.  I know I could have won that project.

  The question I put towards you, John Foderaro, is this: Does it matter so
  much to you to be able to denounce that which people come to you and to
  Franz Inc to purchase that you are willing to let go of customers who do
  not like that denunciation and who get the impression that you will do an
  unprofessional job if asked to implement something you have some personal
  issue with?  If it matters that much to you, good riddance to both you
  and Franz Inc.  If you can get through your thick skull that maybe you
  can get what you want if you back down and start to behave professionally,
  maybe, just _maybe_, it is possible to get Franz Inc to take conformance
  seriously and actually put fixing deviations from the specification on
  top of the list of prioritized tasks and thus help rebuild its trust.

> You readers of this newgroup set the tenor of the lisp community.  Shall
> it be as Erik wants where criticism of the standard is squelched, that
> new ideas are forbidden?

  That is not the issue.  That is not what I do.  It is not criticism that
  you engage in, it is a political campaign of distrust in the process that
  created the standard.  If it were criticism, you would respect the
  process and its results.  You do neither.  If it were criticism, you
  would trust the process to yield better results with better input.  You
  very obviously do not believe this, but instead take it upon yourself to
  do what you will, regardless of process or procedure.

> You the lisp community has to decide.  Erik may speak the loudest but
> don't be put off by that.  Speak your own mind.

  Yes, let us see a show of hands from the all people who do understand the
  issues of trust, conformance, respect for procedure, and compromise in
  order to gain something _higher_ than immediate personal satisfaction.

  I used to have doubts that you were mentally incapable of understanding
  the issues that surround your antisocial behavior and your strong disdain
  for the community standardization process, but I have been forced by the
  sheer mass of evidence that you yourself provide to conclude that you do,
  in fact, not have the mental apparatus to understand what standardization
  means for a community and for the
...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Friedrich Dominicus  
View profile  
 More options Aug 29 2001, 1:31 am
Newsgroups: comp.lang.lisp
From: Friedrich Dominicus <fr...@q-software-solutions.com>
Date: 29 Aug 2001 07:38:55 +0200
Local: Wed, Aug 29 2001 1:38 am
Subject: Re: the "loop" macro

John Foderaro <j...@unspamx.franz.com> writes:

>  Does anyone else feel that I don't have the right to define my own macro to express
> the conditional statement?

You have all the right to do so. You have no *right* to force anyone
in following you.

>  Does anyone else feel that I don't have the right to criticize: if, when, unless and
> loop?

You can criticize is as much as you like, but you have not *right* to
force anyone in following you.

>  If it's antisocial to extend the Common Lisp language then what are we going to do
> with the guy who wrote the 'iterate' macro that's been referred to so many times in
> this thread.

I would suggest to re-read the mails. After that you hopefully see the
difference.

>  You readers of this newgroup set the tenor of the lisp community.  Shall it be as
> Erik wants where criticism of the standard is squelched, that new
> ideas are forbidden?

Whatever Eric has said among it was not that one is not allowed to
criticice the standard.

>  You the lisp community has to decide.  Erik may speak the loudest but don't be put
> off by that.  Speak your own mind.

Well again point 1 of you list is ridicolous. You put you personal
preference over other things which is fine for you, but if I want to
run the code I must either
a) use your Lisp (which with the extension of if* is definitly not
Common Lisp)
b) rewrote that Macro elsewhere.

For what do I have to do that? Because adhering to someones "personal"
standard? Well I do not want that. If I use the if, unless and when
stuff I can role my own standard without enforcing other people to
break the "standard langauge"

Well standards are of course not a one man show. That has it pros and
cons. But having a standard is a major advantage, it's existence is a
safe-net for Users, and having a standard means I'm not tight to any
specific vendor. Of course that is what vendors disklike I guess..

Better to have a standard of your own, than it's easy to force the
Users to bear all bad decisions.

Friedrich


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Aug 29 2001, 1:46 am
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: Tue, 28 Aug 2001 22:45:15 -0700
Local: Wed, Aug 29 2001 1:45 am
Subject: Re: the "loop" macro
In article <9mhpkp$af...@news3.cadvision.com>, humen...@cadvision.com says...

> As for if*, how did it come about?

It originated back in 1980 in Franz Lisp where it was called If (that's capital I and
a lower case f).   It came about for the same reasons that it exists today, to enhance
readability of the conditional expression.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christophe Rhodes  
View profile  
 More options Aug 29 2001, 3:10 am
Newsgroups: comp.lang.lisp
From: Christophe Rhodes <cs...@cam.ac.uk>
Date: 29 Aug 2001 08:10:01 +0100
Local: Wed, Aug 29 2001 3:10 am
Subject: Re: the "loop" macro

John Foderaro <j...@unspamx.franz.com> writes:
>  Does anyone else feel that I don't have the right to define my own
>  macro to express the conditional statement?

Not here.

>  Does anyone else feel that I don't have the right to criticize: if,
>  when, unless and loop?

That's fine, too.

>  If it's antisocial to extend the Common Lisp language then what are
>  we going to do with the guy who wrote the 'iterate' macro that's
>  been referred to so many times in this thread.  An extension that
>  big puts my little if* to shame.  Surely someone who designs
>  something like that is the most antisocial of all.

Uh, no. No-one's ever said that it was antisocial to extend the Common
Lisp language.

>  You readers of this newgroup set the tenor of the lisp community.
>  Shall it be as Erik wants where criticism of the standard is
>  squelched, that new ideas are forbidden?

This is an outrageous misrepresentation.

>  You the lisp community has to decide.  Erik may speak the loudest
>  but don't be put off by that.  Speak your own mind.

I only posted to this thread because you explicitly asked for it, to
add my voice to those who are asking you to think a little about the
issues that other people have raised.

Think, please.

Christophe
--
Jesus College, Cambridge, CB5 8BL                           +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/                  (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Espen Vestre  
View profile  
 More options Aug 29 2001, 4:07 am
Newsgroups: comp.lang.lisp
From: Espen Vestre <espen@*do-not-spam-me*.vestre.net>
Date: 29 Aug 2001 10:06:45 +0200
Local: Wed, Aug 29 2001 4:06 am
Subject: Re: the "loop" macro

Friedrich Dominicus <fr...@q-software-solutions.com> writes:
> Now do we have a Standard or not? If all could agree on introducint an
> if* well that's fine. But so long point one make all progams adhering
> to it a new Lisp Dialect but definitly not Ansi Common Lisp.

if someone gives me some piece of source code with IF* in it, I would
expect them to supply a macro defining IF* together with that code.
Then I would have no other reason to object than personal taste (but I
would be tempted to macroexpand away all the IF*s, if they compiled
into pretty-looking CONDs ;-)).
--
  (espen)

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Bradshaw  
View profile  
 More options Aug 29 2001, 4:29 am
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@tfeb.org>
Date: 29 Aug 2001 09:26:40 +0100
Local: Wed, Aug 29 2001 4:26 am
Subject: Re: the "loop" macro

Jochen Schmidt <j...@dataheaven.de> writes:
> This may probably be true (I have made no such experiences so far)
> But I personally explicitely like the diversity of conditionals
> in CL because one single construct says so much more on what the code is
> doing. If I always choose the "most appropriate conditional" in
> a situation I can see with less work what is happening.

I like it too.  For my own use (I am *not* reommending this!) I tend
to use:

IF - probably I am using the value returned (and I'd tend to give an
explicit NIL in the else branch if need be here).

WHEN, UNLESS - I'm not using the value, but I want to check something.
I often have chains of WHEN / UNLESS to check conditions are true.  As
in english I pick the operator to put focus on the expected thing, so
I can end up with (WHEN (NOT ...) ...).  For instance:

    (when (bogusp a1)
      (log-message "bogus A1 value ~A" a1)
      (error ...))
    (unless (or (null x) ...)
      ...)
    ;; Everything is OK ...

I could use ASSERT for this but often I don't want the automagic error
stuff, I want to do my own error protocol.

COND - multiway branch, may or may not use value.  I *don't* use COND
for the kind of error-checking above, I always use WHEN / UNLESS.

And then there are CASE &c &c.

It's great that CL has so many kinds of conditional and looping
construct.

--tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Craig Brozefsky  
View profile  
 More options Aug 29 2001, 4:47 am
Newsgroups: comp.lang.lisp
From: Craig Brozefsky <cr...@red-bean.com>
Date: Wed, 29 Aug 2001 08:43:22 GMT
Local: Wed, Aug 29 2001 4:43 am
Subject: Re: the "loop" macro

Erik Naggum <e...@naggum.net> writes:
>   And people wonder why Common Lisp does not "win"?  It is not
>   because of the language, it is because of the self-destructive
>   morons in this community who think it is conducive to their
>   personal goals to denounce and ridicule and fight the common goal.

What common goal?  Bear in mind this is com.lang.lisp, not
comp.lang.ansi-cl.

>   John Foderaro and his case, pathname, character vs integer,
>   if-when-unless, loop, etc, etc, issues.  Bruno Haible and his
>   large bunch of issues.  Paul Graham and his bunch of issues
>   against the language.  People who appear, on the surface, to have
>   done good work for Common Lisp return time and again to denounce
>   the language, its community, and everything that _could_ bind us
>   together.

I did not see John's "coding standard" as an attack on the community,
a denouncement of the language, or an assault on any of the common
ideas that this community could be said to hold.  He laid out a set of
criteria for judging forms and then critiqued some forms included in
the CL standard while suggesting a form not in the standard.  He also
did not call his document "Common Lisp Coding Standards", so he was
not misrepresenting the language.  The document also included a
disclaimer indicating that they were private opinions and not those of
Franz.

The CL standard is not the whole of the language, it is a tool for
those who use the language, much like the OED and the MLA handbook are
not english, but tools for those who use english.  The issues people
have with the standard are not issues against the language, any more
than non-standard spelling or grammar is an attack against english.

While it is true that a non-negligable amount of friction is generated
by deviations from the CL standard across Lisp implementations, I see
no reason to regard those as attacks on the community.  The community
is a group of users, not the standard.  Lisp is a tool, CL is a tool
of the Lisp community.  Tools are shaped by usage, and old tools can
became burdens for new uses and new contexts.  In this way usage comes
into conflict with standards.  Maintenance of the tools requires
labor, a scarce resource which is not always available, so tools will
not always be in compliance with standards.

I would hazard a guess that the maintenance of CL compliance across
Lisps, and the protection of the CL standard is not a primary goal of
many people who would consider themselves members of this community.
That common goal is to write Lisp and in doing so accomplish other
goals, like making a living in software, advancing scientific inquiry,
balancing their checkbook, or creating virtual worlds.

Perhaps this is not the case tho, and there is indeed a portion of the
community who believe that the maintenance of and adhesion to the CL
standard is the primary goal of the community.  I have not seen
evidence over the last few years to support their existence in
appreciable numbers.

>   Why would anyone in their right mind want to use Common Lisp when
>   the people who do (seem) use it are so negative towards the
>   language?

You are attacking John, and now Bruce and Paul.  You say they "appear,
on the surface" to have done good work, as if there is a doubt to the
legitimacy of their work.  These are people who have written or
maintained implementations in wide use today, that allow a many people
to be members of this community, to write lisp.  Paul has written
books which have helped many, myself included, become more competent
in the primary goal of this community, writing Lisp.  It is
disengenuous to insinuate that these works are hollow, a trick of
rhetoric.

The forms John dissed are not part of the community, those people are.
People write the code, write the documentation, maintain the
implementations, and otherwise bring life and energy to the community.
The CL standard is just a tool of the community.  The Lisp community
existed before it, and will exist after it.

--
Craig Brozefsky                             <cr...@red-bean.com>
                                  http://www.red-bean.com/~craig
The outer space which me wears it has sexual intercourse. - opus


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Craig Brozefsky  
View profile  
 More options Aug 29 2001, 4:54 am
Newsgroups: comp.lang.lisp
From: Craig Brozefsky <cr...@red-bean.com>
Date: Wed, 29 Aug 2001 08:50:23 GMT
Local: Wed, Aug 29 2001 4:50 am
Subject: Re: the "loop" macro

Tim Bradshaw <t...@tfeb.org> writes:
> IF - probably I am using the value returned (and I'd tend to give an
> explicit NIL in the else branch if need be here).

This convention, in contrast to your not using return values in
when/unless is not one I have followed in the past, but I think it's a
very useful one and can recall several times when it would have saved
my a bug.  I will attempt to remember it tommorow when I am writing
Lisp.

> It's great that CL has so many kinds of conditional and looping
> construct.

Yup, apparent redundancy can allow for nuance.

--
Craig Brozefsky                             <cr...@red-bean.com>
                                  http://www.red-bean.com/~craig
The outer space which me wears it has sexual intercourse. - opus


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 51 - 75 of 131 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »