> Does the posting of this one message show that I'm trying to start a > revolution and overthrow the standard? Did I say anywhere that my plan > is to force a change in the standard so that today's conforming programs > no longer work?
You have very strongly indicated that you want today's common knowledge of how to write code in the language to become invalid. This means that people who want to write Common Lisp code will find that they have to make up their mind whether they agree with your silly if* stunt _and_ avoid if/when/unless or want to write standard Common Lisp and be able to discuss their code with others who write standard Common Lisp. This is undermining the standing of the standard, so yes, you have shown that you are trying to start a revolution and overthrow the standard, starting not with programs that no longer work, but with programmers that no longer use the standard, and that revolution has apparently already started at Franz Inc. from what you are "clarifying" about your disclaimer. This is the wider ramifications to which I have been objecting all along, and you are probably the only person in this thread who have failed to understand that this is _not_ about your macro or your flaws, but about the much wider ramifications of both your insulting language and your actions.
In article <Df6l7.32821$aZ.8664...@typhoon.tampabay.rr.com>, cb...@mercury.bc.ca says...
> You > continue to argue against positions I have seen no one take and apparently > you do this quite intentionally. Can you provide a quote where someone is > taking this position?
Certainly. Here's the quote from Message-ID: <87r8tow5ej....@orion.bln.pmsf.de>
From: "Pierre R. Mai" <p...@acm.org> There are reasons for including such constructs as IF, WHEN, UNLESS, CASE, TYPECASE, etc. in the core language standard, even if all of them can just as easily be defined by each user with macros based on COND. And that reason is _WIDE READABILITY_! IF, WHEN and UNLESS aren't readable based on their own merits, or not. They are readable by the whole community because they are part of the shared understanding, because they are part of the standardized language. If a reader sees an IF, WHEN or UNLESS, they don't have to worry about the exact semantics those constructs might currently have, because the exact semantics have been prescribed, once and for all, in the ANSI CL standard, and are not subject to changes.
He's saying that something is "good" because it's part of a published standard. You can then conclude that not being part of a published standard means that it may not be "good". In my statement I wasn't saying that I knew that Pierre felt that way, I was instead asking him if he felt that way and letting him tell me.
> The main point is that like and dislike of one construct over the other is a > matter of personal taste. Can't you at least acknowledge this?
I have repeatedly said that. Can you acknowledge that I have a right to publish my own opinion despite who I work for and how long I've been working in Lisp?
> There is no room in those statements for respectful disagreement. If I > can't see something obvious, what does that imply? I agree, or i am an > idiot.
It's my opinion. I stated at the top of the page that it was my opinion. When someone uses the word opinion it means that they know that they aren't telling you universally held beliefs. They are telling you what they feel. Based on the word opinion alone you should have realized that I would not consider anyone an idiot who disagreed with my OPINION, and in fact I would expect there to be people who disagreed.
>> How many people have told me on this very >> forum that I can't give away for free lisp source code that >> includes a macro that they >> don't like? > I don't recall anyone saying that in any terms close to these. Do you have > a quote?
Certainly. From: Erik Naggum <e...@naggum.net> in Message-ID: <3208003338948...@naggum.net> 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 are the business of selling IF*, proceed as you have. If John Foderaro makes it as abundently clear as I get the impression he does that he would never write cond and progn, much less if, when, and unless in production code, have somebody else (preferably some software) convert his _personal_ style into _professional_ style for publication.
> You really should respond to the substance of these protests, if possible, > or not at all.
John Foderaro <j...@xspammerx.franz.com> writes: > My apologies to everyone. I thought that all newsreaders > automatically did line wrapping. When I found out this morning > that they do not I've started putting in the line breaks myself.
Of course they don't, at least unconditionally, because that would be disastrous e.g. for code.
Regs, Pierre.
-- Pierre R. Mai <p...@acm.org> http://www.pmsf.de/pmai/ The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. -- Nathaniel Borenstein
In article <MPG.15fe9e58e5cf9b9a989...@news.dnai.com>, John Foderaro wrote: > In article <Df6l7.32821$aZ.8664...@typhoon.tampabay.rr.com>, cb...@mercury.bc.ca > says... >> You >> continue to argue against positions I have seen no one take and apparently >> you do this quite intentionally. Can you provide a quote where someone is >> taking this position?
> Certainly. Here's the quote from Message-ID: <87r8tow5ej....@orion.bln.pmsf.de>
> From: "Pierre R. Mai" <p...@acm.org> > There are reasons for including such constructs as IF, WHEN, UNLESS, > CASE, TYPECASE, etc. in the core language standard, even if all of > them can just as easily be defined by each user with macros based on > COND. And that reason is _WIDE READABILITY_! IF, WHEN and UNLESS > aren't readable based on their own merits, or not. They are readable > by the whole community because they are part of the shared > understanding, because they are part of the standardized language. If > a reader sees an IF, WHEN or UNLESS, they don't have to worry about > the exact semantics those constructs might currently have, because > the exact semantics have been prescribed, once and for all, in the > ANSI CL standard, and are not subject to changes.
> He's saying that something is "good" because it's part of a published > standard. You can then conclude that not being part of a published > standard means that it may not be "good". In my statement I wasn't > saying that I knew that Pierre felt that way, I was instead asking > him if he felt that way and letting him tell me.
No, he is saying that the knoledge of how this works is portable across all CL conforming implamentatuions and that is good.
>> The main point is that like and dislike of one construct over the other is a >> matter of personal taste. Can't you at least acknowledge this?
> I have repeatedly said that. > Can you acknowledge that I have a right to publish my own opinion despite > who I work for and how long I've been working in Lisp?
You seem to be a case of I have my rights but do not acknoledge the responsabilities that go with them. And I have the right to point out that your oppinions ar realy the stuff that fertlizer is made of. You also have a responsability not to do your vendor harm, he has a right to expect that, because he pay your rent/morgage and such? Franz and more importantly franz's customers have a right to quality code that is well documented, did frannz ever doocument the if* officialy in the code they shiped there customers? If the answere is no then franz and you did the customers a grave disservice.
I have a question for you, does franzhave a coding standard for there product, a real one? I would be in seeing it and seeing the comments that it would generate by those more knoledgeable then my self.
>> There is no room in those statements for respectful disagreement. If I >> can't see something obvious, what does that imply? I agree, or i am an >> idiot.
> It's my opinion. I stated at the top of the page > that it was my opinion. When someone > uses the word opinion it means that they know that they aren't telling you > universally held beliefs. They are telling you what they feel. > Based on the word opinion alone you should have realized that I would > not consider anyone an idiot who disagreed with my OPINION, and in > fact I would expect there to be people who disagreed.
>>> How many people have told me on this very >>> forum that I can't give away for free lisp source code that >>> includes a macro that they >>> don't like?
>> I don't recall anyone saying that in any terms close to these. Do you have >> a quote?
> Certainly. > From: Erik Naggum <e...@naggum.net> in Message-ID: <3208003338948...@naggum.net> > 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 are the business of selling IF*, proceed as you have. > If John Foderaro makes it as abundently clear as I get the impression he > does that he would never write cond and progn, much less if, when, and > unless in production code, have somebody else (preferably some software) > convert his _personal_ style into _professional_ style for publication.
What I think Erik is saying is that they should pull this non standard stuff from there production code that they ship to customers. That has ABSOLUTLY NOTHING to do with givving away code, you are paid to do this, remember?? This get back to the "I donated allegroserv" line I asked you were you paid to do this work and have received no answere so I guess that is a yes. If that is true by claiming to have donated it you are stealing the credit that franz is entitled to for funding the development of the system.
>> You really should respond to the substance of these protests, if possible, >> or not at all.
> I have now responded.
I call upon the lisp community to vote on this statement, well if he can do it....
In article <slrn9pa3p5.etr.m...@oscar.eng.cv.net>, Marc Spitzer wrote: > In article <MPG.15fe9e58e5cf9b9a989...@news.dnai.com>, John Foderaro wrote: >> In article <Df6l7.32821$aZ.8664...@typhoon.tampabay.rr.com>, cb...@mercury.bc.ca >> says... >>> You >>> continue to argue against positions I have seen no one take and apparently >>> you do this quite intentionally. Can you provide a quote where someone is >>> taking this position?
>> Certainly. Here's the quote from Message-ID: <87r8tow5ej....@orion.bln.pmsf.de>
>> From: "Pierre R. Mai" <p...@acm.org> >> There are reasons for including such constructs as IF, WHEN, UNLESS, >> CASE, TYPECASE, etc. in the core language standard, even if all of >> them can just as easily be defined by each user with macros based on >> COND. And that reason is _WIDE READABILITY_! IF, WHEN and UNLESS >> aren't readable based on their own merits, or not. They are readable >> by the whole community because they are part of the shared >> understanding, because they are part of the standardized language. If >> a reader sees an IF, WHEN or UNLESS, they don't have to worry about >> the exact semantics those constructs might currently have, because >> the exact semantics have been prescribed, once and for all, in the >> ANSI CL standard, and are not subject to changes.
>> He's saying that something is "good" because it's part of a published >> standard. You can then conclude that not being part of a published >> standard means that it may not be "good". In my statement I wasn't >> saying that I knew that Pierre felt that way, I was instead asking >> him if he felt that way and letting him tell me.
> No, he is saying that the knoledge of how this works is portable > across all CL conforming implamentatuions and that is good.
>>> The main point is that like and dislike of one construct over the other is a >>> matter of personal taste. Can't you at least acknowledge this?
>> I have repeatedly said that. >> Can you acknowledge that I have a right to publish my own opinion despite >> who I work for and how long I've been working in Lisp?
> You seem to be a case of I have my rights but do not acknoledge the > responsabilities that go with them. And I have the right to point out > that your oppinions ar realy the stuff that fertlizer is made of. You > also have a responsability not to do your vendor harm, he has a right
^^^^^^ should be employer, marc
> to expect that, because he pay your rent/morgage and such? Franz and > more importantly franz's customers have a right to quality code that > is well documented, did frannz ever doocument the if* officialy in the > code they shiped there customers? If the answere is no then franz and > you did the customers a grave disservice.
Another poster just pointed out it was documented so I was wrong there.
> I have a question for you, does franzhave a coding standard for there > product, a real one? I would be in seeing it and seeing the comments > that it would generate by those more knoledgeable then my self.
>>> There is no room in those statements for respectful disagreement. If I >>> can't see something obvious, what does that imply? I agree, or i am an >>> idiot.
>> It's my opinion. I stated at the top of the page >> that it was my opinion. When someone >> uses the word opinion it means that they know that they aren't telling you >> universally held beliefs. They are telling you what they feel. >> Based on the word opinion alone you should have realized that I would >> not consider anyone an idiot who disagreed with my OPINION, and in >> fact I would expect there to be people who disagreed.
>>>> How many people have told me on this very >>>> forum that I can't give away for free lisp source code that >>>> includes a macro that they >>>> don't like?
>>> I don't recall anyone saying that in any terms close to these. Do you have >>> a quote?
>> Certainly. >> From: Erik Naggum <e...@naggum.net> in Message-ID: <3208003338948...@naggum.net> >> 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 are the business of selling IF*, proceed as you have. >> If John Foderaro makes it as abundently clear as I get the impression he >> does that he would never write cond and progn, much less if, when, and >> unless in production code, have somebody else (preferably some software) >> convert his _personal_ style into _professional_ style for publication.
> What I think Erik is saying is that they should pull this non standard > stuff from there production code that they ship to customers. That > has ABSOLUTLY NOTHING to do with givving away code, you are paid to do > this, remember?? This get back to the "I donated allegroserv" line I > asked you were you paid to do this work and have received no answere > so I guess that is a yes. If that is true by claiming to have donated > it you are stealing the credit that franz is entitled to for funding > the development of the system.
>>> You really should respond to the substance of these protests, if possible, >>> or not at all.
>> I have now responded.
> I call upon the lisp community to vote on this statement, well if he > can do it....
Discussion subject changed to "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Tim Moore
> "John Foderaro" <j...@unspamx.franz.com> wrote in message > news:MPG.15fdcc0ddc1825c598970d@news.dnai.com... > > In article <871ylnx1pw....@orion.bln.pmsf.de>, p...@pmsf.de says... > > Let me as you this: are when and unless good or bad? > > I'll be you say "good" since they are part of the ANSI spec.
> John,
> It just so happens I used lisp for a year or so never seeing UNLESS or WHEN > or being aware of them, never using them, never missing them either. As you > say, they don't provide anything IF, NOT and PROGN can't handle. When I > discovered them, I liked them and I happily use them as part of a rich set > of choices (though I admit UNLESS I use very infrequently, it still needs a > double take for me to read it). So your prediction of attitudes based on
While flaming is often its own reward, I find it a bit more satisfying to state constructively why I like the alternative conditionals WHEN and UNLESS. Maybe after I've exhausted that avenue I'll comment on Foderaro's motives or the sexuality of his mother or something.
Martin Fowler's book "Refactoring" has had a lot of influence on my recent coding style in multiple languages. Some books are great because they open your mind to completely new vistas; others are great because they codify what you already know to be true, but perhaps don't realize it. "Refactoring" is in the latter category. It has a lot of good advice and recipes for writing clear code. Among other things, it recommends an "early out" style of error checking and value returning in methods. Rather than deeply nest conditionals, return directly when an error is encountered or values are ready to be returned. This leads to a style where conditionals often have only one branch.
Here's an example. I'm not attempting to prove that "early out" has a huge advantage with these toy fragments, but merely to illustrate what I'm talking about:
So that's why I like them. In particular UNLESS, which on its face is completely redundant, reads very naturally as a validating "guard."
I don't like IF* very much because I find it adds verbiage to no useful end, but I certainly respect JKF's right to use it in the considerable amount of code that he's released. Some think that it's hard to find the source to the macro, others don't; whatever. I would think that using it in code fragments that were answers to Usenet questions would be rather pompous and affected, like gratuitously throwing in French or Latin phrases, but that's just me.
John Foderaro <j...@xspammerx.franz.com> writes: > In article <Df6l7.32821$aZ.8664...@typhoon.tampabay.rr.com>, cb...@mercury.bc.ca > > There is no room in those statements for respectful disagreement. If I > > can't see something obvious, what does that imply? I agree, or i am an > > idiot.
> It's my opinion. I stated at the top of the page that it was my > opinion. When someone uses the word opinion it means that they know > that they aren't telling you universally held beliefs. They are > telling you what they feel. Based on the word opinion alone you > should have realized that I would not consider anyone an idiot who > disagreed with my OPINION, and in fact I would expect there to be > people who disagreed.
[ Adding deleted context: "Coby Beck" <cb...@mercury.bc.ca> writes: I think you misunderstand on purpose. To quote your web page: "Use if* instead of the bogus-three-conditionals: if, when and unless. One can go on and on about how bad the if special form is..." "It should be obvious now why loop is a bad idea" ]
No, it is NOT just an opinion. "When talking about biology, use the Punctuated Equilibrium model of evolution instead of the bogus religious explanations ... it should be obvious now why Creationism is a bad idea." The above is indeed my opinion, but some opinions generalize to others. OF COURSE I think anyone who disagrees in an idiot; I'm also willing to admit it. Just wrapping a general statement with "It is my opinion that ..." doesn't necessarily make it less general.
Before I launch into this, I want to say that I have a lot of respect for Franz, Inc. Allegro CL is first-rate, and no tool vendor I've ever dealt with does customer support better, period.
That said, reader case issues have had a long history of being low-priority at Franz. Just to be sure of the following, I went and checked the heap of Allegro manuals in my office.
As of Allegro 4.2 (my copy is dated January, 1994), readtable-case was still listed as unimplemented in the ANSI conformance section. It finally showed up in Allegro 4.3 (dated March, 1996 - it may have appeared first in a 4.2.x release, I don't have those documents to hand).
ANSI voted readtable-case into the language in June, 1989; the whole standard passed in December 1994. Franz had plenty of warning that this needed to be done, but apparently chose to put it off as long as possible - Allegro was tracking other ANSI conformance issues closely at the time (the char-bit functions were deprecated in at least 4.1 - March 1992), but not this one. I'd love to hear there was a reason for this other than developer dislike for that part of the standard.
I remembered this, because around that time I needed a case-sensitive reader for compatibility with a vile little lex/YACC-based S-expression reader in use by other implementors in my team. I had extolled Lisp's virtues to the rest of them, and it was embarrassing for me to have to say that I couldn't do a case-sensitive read in Allegro (actually I could, if I was willing to set a global flag, break all my existing code, and abandon CLX).
In article <slrn9pa3p5.etr.m...@oscar.eng.cv.net>, m...@oscar.eng.cv.net says...
> What I think Erik is saying is that they should pull this non standard > stuff from there production code that they ship to customers.
if* is a macro. We ship our code compiled and during the compilation process macros are expanded and are not referenced in the compiled code. Is this what you want?
Our open source modules (AllegroServe, imap, smtp, etc) are shipped in a compiled form and for some of them the source is also shipped (or pointers are give to web pages where the source can be found). Does this come under 'production code' in your mind? Or is this different. If it's under production code does that mean that Erik is saying that all if*'s should be removed from all those open source modules?
> This get back to the "I donated allegroserv" line I > asked you were you paid to do this work and have received no answere > so I guess that is a yes.
It's definitely the case that Franz paid for my time (and the time of others) to develop the open source modules that we distribute. I'm happy you've given me an opportunity to give Franz credit for spending money on something and donating it to the community.
Discussion subject changed to "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
Thank you for putting things back on a technical level.
I'll just show you how I would write that function but before I do I better at the disclaimer that the views expressed are my opinion and mine alone and I won't think any less of anyone who disagrees.
I prefer my form because just looking at you see immediately that there are two branches in this function controlled by the 'and' expression. Then inside the 'then' form you see that there are two branches inside it controlled by the simple-situation form. So without reading the code you see the structure of the function. It's my personal belief that this is simpler to read than your version.
The pre-condition sits up front and, to me, is immediately obvious. The RETURN-FROM is in the "main body" and may not be. It's really a minor point, I could easily argue either way and your choice wouldn't bother me unless the exit was deeply buried. Judging from what you have written, it wouldn't be. I'm more worried about missing it on a quick skim over a function and forming a wrong opinion about what the function does than what I'd get from even a slightly more intelligent approach (like reading it).
As for the thread, if a C/C++ compiler manufacturer started shipping example code that contained:
#define begin { #define end } #define repeat do{ #define until(x) }while(!(x));
int func(int x,int y) begin int prod = 1; repeat prod = prod * x; y = y - 1; until(y==0); end
I'd question how committed they were to the C/C++ language standards. The IF* macro doesn't seem to add anything to Lisp it just replaces standard practice with something that has a decided Pascal look-and-feel to it.
Besides, everyone knows that `then' should come at the end:
\ for the visiting forthers \ n1 - current elevator floor \ n2 - new elevator floor \ f - false = going down \ true = going up : move-elevator ( n1 f -- n2 ) 1 swap if + else - then ;
Tim Moore <mo...@herschel.bricoworks.com> writes: > Here's an example. I'm not attempting to prove that "early out" has a > huge advantage with these toy fragments, but merely to illustrate what I'm > talking about:
The above threw me for a second: "why would you use RETURN-FROM and put DO-SOME-MORE-STUFF outside the IF?" Because DO-SOME-MORE-STUFF isn't a function call, but some more code in the body of the function, or so I assume. If that's the case, then the rewriting below is more usefull.
I don't use these comments unless I am really confused, but maybe %10 of the time or if I am trying to be too clever for my own good I end up needing to stick "; else bla" or "; implicit else" if I abuse when with return etc. I don't see a big difference here, but I also think my server missed the beginning of the thread.
John Foderaro <j...@unspamx.franz.com> writes: > If you ever looked at the source code for the 1978 version of Unix for the Vax that > came out of Bell Labs you may have read the source for the adb debugger program. The > author of this program (who was famous but whose name I don't remember) was a bigger > fan of Algol than C. Thus he wrote a complete set of C macros that allowed him to > write that debugger in an Algol like language that got macro expanded into C. > So yes, it has been done in the C community. The C macro facility is very weak as > I've said so the reason it's not been done more has, I believe, more to do with the > lack of power of the macroexapander than the lack of desire to extend the control > forms of C.
The author was Bourne and he also wrote the standard shell in it. I don't think it supports your position though since "Bourgol" was cursed for the next 20 years by everyone who had to maintain the code. If you take into account the number of Unix ports in that period, this prank may have costs millions of dollars in wasted time.
-- Lieven Marchand <m...@wyrd.be> She says, "Honey, you're a Bastard of great proportion." He says, "Darling, I plead guilty to that sin." Cowboy Junkies -- A few simple words
Discussion subject changed to "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Tim Moore
> Tim Moore <mo...@herschel.bricoworks.com> writes:
> > Here's an example. I'm not attempting to prove that "early out" has a > > huge advantage with these toy fragments, but merely to illustrate what I'm > > talking about:
> The above threw me for a second: "why would you use RETURN-FROM and > put DO-SOME-MORE-STUFF outside the IF?" Because DO-SOME-MORE-STUFF > isn't a function call, but some more code in the body of the function, > or so I assume. If that's the case, then the rewriting below is more > usefull.
Yeah. I'm trying to keep the examples short; imagine more after do-some-more-stuff, including other possible return points.
First off please start leaving some more context in your replies, I know that facts harm you arguments but It could help you get better argumnts on your side.
In article <MPG.15febe21b35b54d989...@news.dnai.com>, John Foderaro wrote: > In article <slrn9pa3p5.etr.m...@oscar.eng.cv.net>, m...@oscar.eng.cv.net says... >> What I think Erik is saying is that they should pull this non standard >> stuff from there production code that they ship to customers.
> if* is a macro. We ship our code compiled and during the > compilation process macros are expanded and are not > referenced in the compiled code. Is this what you want?
Well there is no lisp shiped in compiled code it is all machien code by then, the nature of compiling remember. What I would like to see, if I become a franz customer, is the removal of gratuitus and deliberate inconpatabilities with the standard. Franz states they are a CL vendor and they seem to be atacking CORE ANSI CL CINSTRUCTS because of the aproved use of an inferior construct to replace it in code that franz clames is production that franz as a CL vendor shows the world both opensource and commerical. What I would like is to see the if* macro DIE and dissapear from the world, it is illconcievd, lacking in technical merrit and an assult on core ANSI defined CL functionality. I would be happy if all the if* krud was removed from all files that franz has the copyright for.
> Our open source modules (AllegroServe, imap, smtp, etc) are shipped
not MY but our, did you get talked to reciently by management/coworkers?
> in a compiled form and for some of them the source is also shipped
all open source products ship or make avalable source not some of them.
> (or pointers are give to web pages where the source can be found). > Does this come under 'production code' in your mind? Or is this > different. If it's under production code does that mean that > Erik is saying that all if*'s should be removed from all those > open source modules?
first why are you bringing Erik in to this you are replying to my comments not his. let me say what I think shoud happen re if*: IFF it is copyrighted by franz if* should be banned/removed from the file and standard branching constructs used to replace them.
>> This get back to the "I donated allegroserv" line I >> asked you were you paid to do this work and have received no answere >> so I guess that is a yes.
> It's definitely the case that Franz paid for my time (and the time > of others) to develop the open source modules that we distribute. > I'm happy you've given me an opportunity to give Franz credit for > spending money on something and donating it to the community.
Ah so no only did you not donate your time you also took credit for work you did not even preform so you stole from your employer and your coworkers the credit they were due. That is just a fucked up and very very very VERY STUPID thing to do in a fourm that some of the people at franz read. "Do not shit where you eat" is GOOD advice try following it sometime.
one last thing, getting caught in a lie is not an opportunity it is a demonstration of sloppy work on the liers part that is all.
And now a quick C question for John:
why is there so much use of the: if {} else if{} ... else{}
in C when it has a switch statement? there is a technical reason, what is it? And how does this prove that it is not needed in common lisp?
In article <xcvvgiyvnqk....@conquest.OCF.Berkeley.EDU>, t...@conquest.OCF.Berkeley.EDU says...
> No, it is NOT just an opinion. "When talking about biology, use the > Punctuated Equilibrium model of evolution instead of the bogus > religious explanations ... it should be obvious now why Creationism is > a bad idea." The above is indeed my opinion, but some opinions > generalize to others.
Ok I'm confused. I explicitly say that something is my opinion and you say that it's not an opinion.
You then give this example: "When talking about biology, use the Punctuated Equilibrium model of evolution instead of the bogus religious explanations ... it should be obvious now why Creationism is a bad idea."
supposedly intended to mirror my text and you say it is "indeed my opinion" even though no where do you say "In my opinion..".
I'd say that my statement and your statement are both opinions, I was just more explicit about mine being an opinion. The statement I just made about them both being opinions was an opinion but I believe one that most people share but obviously you do not.
"The 49ers will win the Super Bowl this year."
Is that an opinion or have I just insulted everyone who is a fan of another team?
On Tue, 4 Sep 2001, Marc Spitzer wrote: > >> This get back to the "I donated allegroserv" line I > >> asked you were you paid to do this work and have received no answere > >> so I guess that is a yes.
> > It's definitely the case that Franz paid for my time (and the time > > of others) to develop the open source modules that we distribute. > > I'm happy you've given me an opportunity to give Franz credit for > > spending money on something and donating it to the community.
> Ah so no only did you not donate your time you also took credit for > work you did not even preform so you stole from your employer and your > coworkers the credit they were due. That is just a fucked up and very > very very VERY STUPID thing to do in a fourm that some of the people > at franz read. "Do not shit where you eat" is GOOD advice try > following it sometime.
Dude, you are seriously confused about how open source works and also about who John Foderaro is in relation to Franz. Maybe you should chill out a bit and investigate how the major contributors to your favorite open source project get funded and how they refer to their contributions in casual conversation.
Discussion subject changed to "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Dorai Sitaram
>>>>>> "JF" == John Foderaro <j...@xspammerx.franz.com> writes: >[...] > JF> I personally would have left it in the non-early-out form and > JF> written it:
>I don't use these comments unless I am really confused, but maybe >%10 of the time or if I am trying to be too clever for my own good >I end up needing to stick "; else bla" or "; implicit else" if I abuse >when with return etc. I don't see a big difference here, but I also >think my server missed the beginning of the thread.
Looks like the THEN following an IF* is totally noise, unless John is allowing the test position to contain more than one expression. Doesn't Lisp abhor vacuous keywords? One could remove THEN from the macro and in IF* uses, either keep that area blank or use your commented THEN when an urge is felt to highlight the start of a then-branch.
John Foderaro <j...@xspammerx.franz.com> writes: > In article <xcvvgiyvnqk....@conquest.OCF.Berkeley.EDU>, > t...@conquest.OCF.Berkeley.EDU says... > > No, it is NOT just an opinion. "When talking about biology, use the
> > Punctuated Equilibrium model of evolution instead of the bogus > > religious explanations ... it should be obvious now why Creationism is > > a bad idea." The above is indeed my opinion, but some opinions > > generalize to others.
> Ok I'm confused. I explicitly say that something is my opinion and > you say that it's not an opinion.
> You then give this example: > "When talking about biology, use the > Punctuated Equilibrium model of evolution instead of the bogus > religious explanations ... it should be obvious now why Creationism is > a bad idea."
> supposedly intended to mirror my text and you say it is "indeed my opinion" > even though no where do you say "In my opinion..".
> I'd say that my statement and your statement are both opinions, I was > just more explicit about mine being an opinion. The statement I > just made about them both being opinions was an opinion but I believe > one that most people share but obviously you do not.
Discussion subject changed to "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
I think that you're getting the idea. The problem with adding comments for then and else is that your editor may not indent them correctly. Also that only works up to a point with 'if' since you can only have a 'then' and 'else' clause.
In article <m3bskqg97e....@localhost.localdomain>, m...@wyrd.be says...
> The author was Bourne and he also wrote the standard shell in it. I > don't think it supports your position though since "Bourgol" was > cursed for the next 20 years by everyone who had to maintain the > code.
I mentioned it only to refute this point:
----
From: "Pierre R. Mai" <p...@acm.org> in Message-ID: <87r8tow5ej....@orion.bln.pmsf.de> Even with C's pre-processor macros it is possible to do
#define BEGIN { #define END }
or even
#define IF(x,y,z) ((x)?(y):(z))
But no serious C user will ever contemplate doing such a fundamentally stupid thing, let alone any expert C user.
----
I agree that Bourne (thanks for the reminder) went way overboard and I would never condone writing a whole new language inside Lisp (which is why i'm no fan of the loop macro by the way).
Discussion subject changed to "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
In article <9n3col$72...@news.gte.com>, d...@goldshoe.gte.com says...
> Looks like the THEN following an IF* is totally noise,
not really since the 'then' can be 'thenret' to allow you to specify the cond behavior where it returns the value of the predicate (cond ((testit)) ... )
But more importantly when you have big predicates the 'then' is a visual cue to allow you to find the then clause. As I've said, I don't mind typing a few more characters if it makes the code easier for me to read later on.
In article <MPG.15fedb47dfcb1ab3989...@news.dnai.com>, John Foderaro <j...@xspammerx.franz.com> wrote:
>In article <9n3col$72...@news.gte.com>, d...@goldshoe.gte.com says... >> Looks like the THEN following an IF* is totally noise,
>not really since the 'then' can be 'thenret' to allow you >to specify the cond behavior where it returns >the value of the predicate > (cond ((testit)) > ... > )
>But more importantly when you have big predicates the >'then' is a visual cue to allow you to find the >then clause. As I've said, I don't mind typing a >few more characters if it makes the code easier >for me to read later on.
Perhaps you could then make the THEN optional, so that then some of the snappier IF*s, where the THEN is just clutter and not an aid to readability, can be then written and read easily.