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
Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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 226 - 250 of 325 - 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
 
Erik Naggum  
View profile  
 More options Sep 4 2001, 12:10 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Tue, 04 Sep 2001 16:09:55 GMT
Local: Tues, Sep 4 2001 12:09 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
* John Foderaro <j...@unspamx.franz.com>

> 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.

///


 
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 Sep 4 2001, 12:16 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 4 Sep 2001 09:16:57 -0700
Local: Tues, Sep 4 2001 12:16 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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.

I have now responded.

 
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.
Pierre R. Mai  
View profile  
 More options Sep 4 2001, 12:31 pm
Newsgroups: comp.lang.lisp
From: "Pierre R. Mai" <p...@acm.org>
Date: 04 Sep 2001 16:33:48 +0200
Local: Tues, Sep 4 2001 10:33 am
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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


 
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.
Marc Spitzer  
View profile  
 More options Sep 4 2001, 1:25 pm
Newsgroups: comp.lang.lisp
From: m...@oscar.eng.cv.net (Marc Spitzer)
Date: Tue, 04 Sep 2001 17:25:48 GMT
Local: Tues, Sep 4 2001 1:25 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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.

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....

What do you think john need to know.

marc


 
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.
Marc Spitzer  
View profile  
 More options Sep 4 2001, 1:33 pm
Newsgroups: comp.lang.lisp
From: m...@oscar.eng.cv.net (Marc Spitzer)
Date: Tue, 04 Sep 2001 17:33:57 GMT
Local: Tues, Sep 4 2001 1:33 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

                                            ^^^^^^
                                            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.


 
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 "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  
View profile  
 More options Sep 4 2001, 1:45 pm
Newsgroups: comp.lang.lisp
From: Tim Moore <mo...@herschel.bricoworks.com>
Date: 4 Sep 2001 17:45:02 GMT
Local: Tues, Sep 4 2001 1:45 pm
Subject: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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:

;; Traditional "functional" Lisp style
(defun do-something (input1 input2)
  (if (and (is-valid input1)
           (is-valid input2))
      (let ((foo (set-stuff-up input1 input2)))
        (if (simple-situation input1 input2)
            foo
            (do-some-more-stuff input1 input2 foo)))
      (error 'invalid-inputs input1 input2)))

;; Early out style
(defun do-something (input1 input2)
  (if (not (and (is-valid input1)
                (is-valid input2)))
      (error 'invalid-inputs input1 input2))
  (let ((foo (set-stuff-up input1 input2)))
    (if (simple-situation input1 input2)
        (return-from do-something foo))
    (do-some-more-stuff input1 input2 foo)))

If you're going to write in the latter style, WHEN and UNLESS make for
very readable alternative syntax:

(defun do-something (input1 input2)
  (unless (and (is-valid input1)
               (is-valid input2))
    (error 'invalid-inputs input1 input2))
  (let ((foo (set-stuff-up input1 input2)))
    (when (simple-situation input1 input2)
      (return-from do-something foo))
    (do-some-more-stuff input1 input2 foo)))

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.

Tim

P.S. I like LOOP too.


 
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 "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Thomas F. Burdick
Thomas F. Burdick  
View profile  
 More options Sep 4 2001, 2:01 pm
Newsgroups: comp.lang.lisp
From: t...@conquest.OCF.Berkeley.EDU (Thomas F. Burdick)
Date: 04 Sep 2001 11:01:55 -0700
Local: Tues, Sep 4 2001 2:01 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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.


 
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 "What I want from my Common Lisp vendor and the Common Lisp community" by Bob Bane
Bob Bane  
View profile  
 More options Sep 4 2001, 2:20 pm
Newsgroups: comp.lang.lisp
From: Bob Bane <b...@removeme.gst.com>
Date: Tue, 04 Sep 2001 14:19:45 -0400
Local: Tues, Sep 4 2001 2:19 pm
Subject: Re: What I want from my Common Lisp vendor and the Common Lisp community
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).

--
Remove obvious stuff to e-mail me.
Bob Bane


 
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 "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
John Foderaro  
View profile  
 More options Sep 4 2001, 2:32 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 4 Sep 2001 11:32:52 -0700
Local: Tues, Sep 4 2001 2:32 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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.

 
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 "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
John Foderaro  
View profile  
 More options Sep 4 2001, 2:50 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 4 Sep 2001 11:51:25 -0700
Local: Tues, Sep 4 2001 2:51 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
 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.

you ended up with this being the best form:

(defun do-something (input1 input2)
  (unless (and (is-valid input1)
               (is-valid input2))
    (error 'invalid-inputs input1 input2))
  (let ((foo (set-stuff-up input1 input2)))
    (when (simple-situation input1 input2)
      (return-from do-something foo))
    (do-some-more-stuff input1 input2 foo)))

I personally would have left it in the
non-early-out form and written it:

(defun do-something (input1 input2)
  (if* (and (is-valid input1)
            (is-valid input2))
     then
          (let ((foo (set-stuff-up input1 input2)))
            (if* (simple-situation input1 input2)
               then foo
               else (do-some-more-stuff input1 input2 foo)))
     else
          (error 'invalid-inputs input1 input2)))

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.


 
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.
Geoff Summerhayes  
View profile  
 More options Sep 4 2001, 3:10 pm
Newsgroups: comp.lang.lisp
From: "Geoff Summerhayes" <sNuOmSrPnA...@hNoOtSmPaAiMl.com>
Date: Tue, 4 Sep 2001 15:19:07 -0400
Local: Tues, Sep 4 2001 3:19 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

"Tim Moore" <mo...@herschel.bricoworks.com> wrote in message

news:9n33uu$rl3$0@216.39.145.192...

> If you're going to write in the latter style, WHEN and UNLESS make for
> very readable alternative syntax:

> (defun do-something (input1 input2)
>   (unless (and (is-valid input1)
>                (is-valid input2))
>     (error 'invalid-inputs input1 input2))
>   (let ((foo (set-stuff-up input1 input2)))
>     (when (simple-situation input1 input2)
>       (return-from do-something foo))
>     (do-some-more-stuff input1 input2 foo)))

<newbie>

Personally I'd prefer:

 (defun do-something (input1 input2)
   (unless (and (is-valid input1)
                (is-valid input2))
     (error 'invalid-inputs input1 input2))
   (let ((foo (set-stuff-up input1 input2)))
     (if (simple-situation input1 input2)
       foo
       (do-some-more-stuff input1 input2 foo))))

or at least

 (defun do-something (input1 input2)
   (unless (and (is-valid input1)
                (is-valid input2))
     (error 'invalid-inputs input1 input2))
   (let ((foo (set-stuff-up input1 input2)))
     ;
     ; *** Look at me! ***
     ; *** Exit Point! ***
     ;
     (when (simple-situation input1 input2)
       (return-from do-something foo))
     ;
     (do-some-more-stuff input1 input2 foo)))

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 ;

> P.S. I like LOOP too.

me too :-)

Geoff

</newbie>


 
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 Sep 4 2001, 3:18 pm
Newsgroups: comp.lang.lisp
From: t...@conquest.OCF.Berkeley.EDU (Thomas F. Burdick)
Date: 04 Sep 2001 12:18:30 -0700
Local: Tues, Sep 4 2001 3:18 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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.


 
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.
Bulent Murtezaoglu  
View profile  
 More options Sep 4 2001, 3:26 pm
Newsgroups: comp.lang.lisp
From: Bulent Murtezaoglu <b...@acm.org>
Date: Tue, 04 Sep 2001 19:25:36 GMT
Local: Tues, Sep 4 2001 3:25 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
>>>>> "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:

    JF> (defun do-something (input1 input2)
    JF>   (if* (and (is-valid input1)
    JF>             (is-valid input2))
    JF>    then
    JF>        (let ((foo (set-stuff-up input1 input2)))
    JF>           (if* (simple-situation input1 input2)
    JF>                 then foo
    JF>                 else (do-some-more-stuff input1 input2 foo)))
    JF>    else
    JF>        (error 'invalid-inputs input1 input2)))

How about

(defun do-something (input1 input2)
  (if (and (is-valid input1)
           (is-valid input2))
     ; then
          (let ((foo (set-stuff-up input1 input2)))
            (if (simple-situation input1 input2)
               foo
               (do-some-more-stuff input1 input2 foo)))
     ; else
          (error 'invalid-inputs input1 input2)))

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.

cheers,

BM


 
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 "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Lieven Marchand
Lieven Marchand  
View profile  
 More options Sep 4 2001, 3:33 pm
Newsgroups: comp.lang.lisp
From: Lieven Marchand <m...@wyrd.be>
Date: 04 Sep 2001 19:24:53 +0200
Local: Tues, Sep 4 2001 1:24 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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


 
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 "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  
View profile  
 More options Sep 4 2001, 3:34 pm
Newsgroups: comp.lang.lisp
From: Tim Moore <mo...@herschel.bricoworks.com>
Date: 4 Sep 2001 19:34:32 GMT
Local: Tues, Sep 4 2001 3:34 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
On 4 Sep 2001, Thomas F. Burdick wrote:

Yeah.  I'm trying to keep the examples short; imagine more after
do-some-more-stuff, including other possible return points.

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.
Discussion subject changed to "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Marc Spitzer
Marc Spitzer  
View profile  
 More options Sep 4 2001, 3:50 pm
Newsgroups: comp.lang.lisp
From: m...@oscar.eng.cv.net (Marc Spitzer)
Date: Tue, 04 Sep 2001 19:48:04 GMT
Local: Tues, Sep 4 2001 3:48 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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?

no help from the audence please

marc


 
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 Sep 4 2001, 3:52 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 4 Sep 2001 12:53:18 -0700
Local: Tues, Sep 4 2001 3:53 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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?


 
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 Moore  
View profile  
 More options Sep 4 2001, 4:14 pm
Newsgroups: comp.lang.lisp
From: Tim Moore <mo...@herschel.bricoworks.com>
Date: 4 Sep 2001 20:14:36 GMT
Local: Tues, Sep 4 2001 4:14 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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.

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.
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
Dorai Sitaram  
View profile  
 More options Sep 4 2001, 4:15 pm
Newsgroups: comp.lang.lisp
From: d...@goldshoe.gte.com (Dorai Sitaram)
Date: 4 Sep 2001 20:15:17 GMT
Local: Tues, Sep 4 2001 4:15 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
In article <87lmjun4eo....@nkapi.internal>,
Bulent Murtezaoglu  <b...@acm.org> wrote:

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.

--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.
Discussion subject changed to "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by Thomas F. Burdick
Thomas F. Burdick  
View profile  
 More options Sep 4 2001, 4:15 pm
Newsgroups: comp.lang.lisp
From: t...@conquest.OCF.Berkeley.EDU (Thomas F. Burdick)
Date: 04 Sep 2001 13:15:23 -0700
Local: Tues, Sep 4 2001 4:15 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community

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

                  ^^^^^^^^^^^^^^^
                  ^^^^

Sure, an opinion.  But not "just" an opinion.

> "The 49ers will win the Super Bowl this year."

This is qualitatively different.

 
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 "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
John Foderaro  
View profile  
 More options Sep 4 2001, 4:16 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 4 Sep 2001 13:17:23 -0700
Local: Tues, Sep 4 2001 4:17 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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.

 
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 "Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
John Foderaro  
View profile  
 More options Sep 4 2001, 4:28 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 4 Sep 2001 13:29:35 -0700
Local: Tues, Sep 4 2001 4:29 pm
Subject: Re: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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).


 
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 "I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community" by John Foderaro
John Foderaro  
View profile  
 More options Sep 4 2001, 4:36 pm
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@xspammerx.franz.com>
Date: Tue, 4 Sep 2001 13:36:56 -0700
Local: Tues, Sep 4 2001 4:36 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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.


 
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 Sep 4 2001, 4:45 pm
Newsgroups: comp.lang.lisp
From: d...@goldshoe.gte.com (Dorai Sitaram)
Date: 4 Sep 2001 20:45:31 GMT
Local: Tues, Sep 4 2001 4:45 pm
Subject: Re: I like WHEN/UNLESS Was: Promoting CL Was: What I want from my Common Lisp vendor and the Common Lisp community
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.

--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.
Messages 226 - 250 of 325 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »