Google Groups Home
Help | Sign in
Noob Wonders: Lisp-1 vs. Lisp-2
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 1 - 25 of 47 - Collapse all   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
are  
View profile
 More options Jan 10, 7:24 am
Newsgroups: comp.lang.lisp
From: are <Propon...@gmx.net>
Date: Thu, 10 Jan 2008 04:24:48 -0800 (PST)
Local: Thurs, Jan 10 2008 7:24 am
Subject: Noob Wonders: Lisp-1 vs. Lisp-2
Having read Touretzky's introduction and the first half of PG's On
Lisp, I'm wondering what the advantages of a Lisp-2 are over a Lisp-1.

It seems to me that a Lisp-2's ability to use a single symbol to
represent both a function and a value is a minor advantage, although
I'm sure some regard it as a disadvantage. On the other hand, a Lisp-2
requires the clunky, IMHO, #' operator and cannot have a elegant,
universal DEFINE like Scheme's.

Yet I've heard that a Lisp-1's macros are necessarily less powerful
than those of a Lisp-2. Is that true? Are there some other big
advantages of a Lisp-2 that I'm missing?


    Reply to author    Forward  
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.
Rainer Joswig  
View profile
 More options Jan 10, 7:29 am
Newsgroups: comp.lang.lisp
From: Rainer Joswig <jos...@lisp.de>
Date: Thu, 10 Jan 2008 13:29:39 +0100
Local: Thurs, Jan 10 2008 7:29 am
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2
In article
<74e46212-fcd3-4d2d-bc13-f12ac016d...@t1g2000pra.googlegroups.com>,

 are <Propon...@gmx.net> wrote:
> Having read Touretzky's introduction and the first half of PG's On
> Lisp, I'm wondering what the advantages of a Lisp-2 are over a Lisp-1.

> It seems to me that a Lisp-2's ability to use a single symbol to
> represent both a function and a value is a minor advantage, although
> I'm sure some regard it as a disadvantage. On the other hand, a Lisp-2
> requires the clunky, IMHO, #' operator and cannot have a elegant,
> universal DEFINE like Scheme's.

> Yet I've heard that a Lisp-1's macros are necessarily less powerful
> than those of a Lisp-2. Is that true? Are there some other big
> advantages of a Lisp-2 that I'm missing?

See here:

http://www.nhplace.com/kent/Papers/Technical-Issues.html


    Reply to author    Forward  
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.
Michael Weber  
View profile
 More options Jan 10, 7:47 am
Newsgroups: comp.lang.lisp
From: Michael Weber <mw+goo...@foldr.org>
Date: Thu, 10 Jan 2008 04:47:57 -0800 (PST)
Local: Thurs, Jan 10 2008 7:47 am
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2
On Jan 10, 1:24 pm, are <Propon...@gmx.net> wrote:

> It seems to me that a Lisp-2's ability to use a single symbol to
> represent both a function and a value is a minor advantage, although
> I'm sure some regard it as a disadvantage. On the other hand, a Lisp-2
> requires the clunky, IMHO, #' operator and cannot have a elegant,
> universal DEFINE like Scheme's.

Here's a DEFINE in CL (see also the rest of the thread and its
references):
http://groups.google.com/group/comp.lang.lisp/msg/d1918aee5dd0f512

Michael


    Reply to author    Forward  
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.
Pascal Costanza  
View profile
 More options Jan 10, 8:04 am
Newsgroups: comp.lang.lisp
From: Pascal Costanza <p...@p-cos.net>
Date: Thu, 10 Jan 2008 14:04:20 +0100
Local: Thurs, Jan 10 2008 8:04 am
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2

are wrote:
> Having read Touretzky's introduction and the first half of PG's On
> Lisp, I'm wondering what the advantages of a Lisp-2 are over a Lisp-1.

> It seems to me that a Lisp-2's ability to use a single symbol to
> represent both a function and a value is a minor advantage, although
> I'm sure some regard it as a disadvantage. On the other hand, a Lisp-2
> requires the clunky, IMHO, #' operator and cannot have a elegant,
> universal DEFINE like Scheme's.

In my personal experience, I have more problems with nameclashes in
Scheme (quite often, actually) than in Common Lisp (practically never).
A standard (but somewhat silly) example is

(let ((list '(a b c)))
   ... you can't use the function 'list here anymore in Scheme ...)

But this happens to me in more realistic scenarios...

> Yet I've heard that a Lisp-1's macros are necessarily less powerful
> than those of a Lisp-2. Is that true? Are there some other big
> advantages of a Lisp-2 that I'm missing?

Lisp-1 macros are not less powerful. You can have macro systems in
Scheme that give you the same expressiveness as the Common Lisp macro
system (like syntax-case or syntactic closures). With R6RS, you now even
have symbol / identifier macros.

However, such so-called hygienic macro systems are, IMHO, much more
complicated to use. (They are easier for simple cases, but much harder
for complex cases.)

In general, Lisp-2 encourages you to separate namespaces for different
concepts, which allows you to have different meanings for the same name
in different contexts or for different uses. In contrast, Lisp-1
encourages you to represent concepts as first-class objects. Both
approaches have advantages and disadvantages.

Personally, I generally prefer Lisp-2 over Lisp-1 in practical settings,
but Lisp-1 has advantages if you want to present the core essentials of
an idea. That's probably why Scheme is more widely used in academia than
Common Lisp...

Pascal

--
1st European Lisp Symposium (ELS'08)
http://prog.vub.ac.be/~pcostanza/els08/

My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/


    Reply to author    Forward  
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 Jan 10, 9:18 am
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@nhplace.com>
Date: 10 Jan 2008 09:18:23 -0500
Local: Thurs, Jan 10 2008 9:18 am
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2

Rainer Joswig <jos...@lisp.de> writes:

Mostly my comments here reply to the inner message, but Rainer added the
URL at end which I wanted to keep in and add a comment about.

> In article
> <74e46212-fcd3-4d2d-bc13-f12ac016d...@t1g2000pra.googlegroups.com>,
>  are <Propon...@gmx.net> wrote:

> > Having read Touretzky's introduction and the first half of PG's On
> > Lisp, I'm wondering what the advantages of a Lisp-2 are over a Lisp-1.

> > It seems to me that a Lisp-2's ability to use a single symbol to
> > represent both a function and a value is a minor advantage,

In understanding things like this, you should worry you are not being
objective when your attempt to understand injects "minor" into the
data collection rather than the analysis.  Just say it's viewed as
an advantage, then put the word "minor" into the analysis after the fact.
If you're still trying to collect data and also if you aren't speaking to
a specific target audience, you can't assess major vs. minor.

I personally consider this issue extremely major.

> > although
> > I'm sure some regard it as a disadvantage.

And some would say major disadvantage here, just to underscore my point
about how your wording biases you--you are already pre-biasing the outcome
by comparing point-by-point rather than by just enumerating the issues and
comparing in the context of a known user with particular value scores.

In the metaphor of our world, I think another way to say this is that
either: The assessment of point scores needs to be dynamically, not
statically, assessed ... or, perhaps, that it's a macro and it's too
early to bind the names to values.

I think you are correct here not to add the major/minor qualifier, I'm only
pointing out that your decision to say major/minor in one case but not the
other is inconsistent.

> > On the other hand, a Lisp-2
> > requires the clunky, IMHO, #' operator and cannot have a elegant,

Elegance is a term that is not canonically defined.  Be very careful
about this term.  There are many forms of elegance.  Elegance of
language is not the same as elegance of program, for example.  Certain
members of the Scheme community seem to me to not only have a
preference for a single kind of name, but then to take that into the
meta to say that the word elegance can only denote a single thing,
too.  Don't fall into that trap.

I'm not saying Scheme isn't elegant in its own way--I'm saying it does
not have a strangehold on the notion of elegance.

Historically, I created the terms lisp1/lisp2 (see below) for the purpose
of making this NOT be a battle between Scheme and Lisp, but rather between
one particular design principle and another.  But, in practice, the people
making arguments do come from these communities and tend to have strong
allegiances to their own communities which they often don't think through
as isolated design choices, but accept sometimes as a necessary whole.
At least, in your quest for the Truth (there isn't just one truth either,
by the way--that's part of my joke here), make sure to consider this.

> > universal DEFINE like Scheme's.

I'm glad you wrote IMHO, since I don't agree that #' is best described as
clunky.  It just satisfies a different aesthetic.

Calling #' clunky is like calling the words public/private/protected
in other class systems, or calling the ':'/'::' thing in our package
system clunky.  They increase the number of characters you have to
write, but buy something in return.

The question of clunkiness creates an implicit bias in whether you
either like the price or value the outcome; and it's legitimate to not
like the price or value the outcome, but when assessing the value of
something from anything other than a flamewar, you want to make sure
to understand that it isn't necessary to something's existence that it
satisfy the non-consumers of it, it's necessary that it satisfy the
consumers of it.  On the other hand, the (effective) adverb IMO or
IMHO turns "clunky" as a general claim into "clunky within the
non-general framework of one observer", and is then unobjectionable,
but loses its scientific basis in the process as a term for describing
the feature overall.

In fact, during the design process, and even now, not everyone agreed
that functional programming style was what they wanted to do.  They
weren't trying to make it super-expensive, but they were saying "it
doesn't occur often enough that I don't want to see it notated when it
happens".  So the flip side community actually likes seeing it in many
cases, at least for #'foo vs foo, because it flags "this is a function being
passed" vs "this is a variable", and that's an important thing to see.
In the case of lambda, it's redundant, and Lisp has grown the alternative
of allowing you to write either #'(lambda...) or (lambda...) so it's not
an issue there.

> > Yet I've heard that a Lisp-1's macros are necessarily less powerful
> > than those of a Lisp-2.  Is that true?

Lisp1 advocates would likely phrase this in a way that was spun more
positively, making side-by-side comparison difficult.  In many cases,
they will say that the Lisp-1 macro system works reliably and leave it
to you to infer that this means the Lisp2 macro system doesn't.  It
wouldn't under Lisp-1, I think; but they don't have packages, and some
in that community think packages make no sense either.  But the
combination of packages, macros, and normal CL programming style lead
to no major problems in practice due to the Lisp2 sytle.

> > Are there some other big
> > advantages of a Lisp-2 that I'm missing?
> See here:

> http://www.nhplace.com/kent/Papers/Technical-Issues.html

This published paper is a short form of a longer document we used in
the X3J13 process; the longer document is the origin of the terms
Lisp1/Lisp2, and at some point it should be dredged up.  (As I recall,
it didn't have the word "Technical" on its name and had additional
arguments that Gabriel wanted to omit during formal publication.)

    Reply to author    Forward  
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.
Xah Lee  
View profile
 More options Jan 10, 3:10 pm
Newsgroups: comp.lang.lisp, comp.lang.scheme
From: Xah Lee <x...@xahlee.org>
Date: Thu, 10 Jan 2008 12:10:27 -0800 (PST)
Local: Thurs, Jan 10 2008 3:10 pm
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2

someone (Propon...@gmx.net) wrote:

「Having read Touretzky's introduction and the first half of PG's On
Lisp, I'm wondering what the advantages of a Lisp-2 are over a
Lisp-1.」

「It seems to me that a Lisp-2's ability to use a single symbol to
represent both a function and a value is a minor advantage, although
I'm sure some regard it as a disadvantage. On the other hand, a Lisp-2
requires the clunky, IMHO, #' operator and cannot have a elegant,
universal DEFINE like Scheme's.」

「Yet I've heard that a Lisp-1's macros are necessarily less powerful
than those of a Lisp-2. Is that true? Are there some other big
advantages of a Lisp-2 that I'm missing?」

Please try to avoid the jargons lisp1 and lisp2.

Recently i have just wrote a longish essay on the harm of jargons in
functional languages.

See

Newsgroups: comp.lang.lisp, comp.lang.scheme, comp.lang.functional
From: Xah Lee
Date: Wed, 9 Jan 2008 12:20:47 -0800 (PST)
Subject: Re: Java as a first language "considered harmful"

http://groups.google.com/group/comp.lang.lisp/msg/9c93ce334527797d?dm...

HTML version now at
http://xahlee.org/emacs/jargons_high_level_lang.html
(Jargons And High Level Languages)

---------------------------

The jargon lisp1 and lisp2 is one of better example that illustrate
the issue.

★ The jargon is opaque. The words do not convey its meaning.

★ Being a opaque jargon, it is often used subsconsciously by people in
a group, to communicate that they are in-group. (a cast-
differentiation stratedgy of human animals; as is much of slang's
purpose) And consequenctly, these jargons are thrown about often
without the writers actually understanding, or wishing to discuss
about it in any way.

Further, it is my opinion, this issue is extremely minor, having
little real-world practical impact. It is not unlike a war about which
end of egg one should crack. (i.e. big endian vs little endian)

(See:
★ Gulliver's Travels. PART I ― A VOYAGE TO LILLIPUT
http://xahlee.org/p/Gullivers_Travels/gt1ch04.html
)

Why is this issue minor? Consider it broadly in human animal's
computing activities. I give 2 examples:

Consider that in the 1960 people went to moon. Imagine what
complexities involved in the physics, mathematics, computation, at a
time when computer are some one thousand times slowers than today,
using punch-cards, and there are not much computer languages, not even
modular programing.

For another example, consider today's PHP language. Linguistically, it
is one of the most badly designed language, with many inconsistancies,
WITH NO NAMESPACE MECHANISM, yet, it is so widely used that it is in
fact one of the top 5 most deployed languages. If one of PHP or lisps
and all associated applications written in them is to suddenly
disappear from the face of this earth as a catastrophic punishment
from Zeus, and all the leaders of nations is to have experts to access
the damage as they do with natural disasters, it is probable PHP would
be the much greater loss.

-------------

To people in the lisp communities, i would suggest, to stop using the
term. If necessary, say Common Lisp's model or Scheme Lisp model.

  Xah
  x...@xahlee.org
http://xahlee.org/


    Reply to author    Forward  
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.
Maciej Katafiasz  
View profile
(1 user)  More options Jan 10, 4:03 pm
Newsgroups: comp.lang.lisp, comp.lang.scheme
From: Maciej Katafiasz <mathr...@gmail.com>
Date: Thu, 10 Jan 2008 13:03:56 -0800 (PST)
Local: Thurs, Jan 10 2008 4:03 pm
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2
On Jan 10, 9:10 pm, Xah Lee <x...@xahlee.org> wrote:

> Please try to avoid the jargons lisp1 and lisp2.

> Recently i have just wrote a longish essay on the harm of jargons in
> functional languages.

Please stop being a dumb arsehole and a troll. As long as you only
post your tripe in separate threads, I can just ignore you, but stop
presenting your bullshit as advice to people who might not be able to
tell you're deranged.

Maciej

PS. Do you write anything but longish essays? Though hopefully that's
a good thing, I'd expect most sane individuals to just tl;dr them,
thus minimising the harm done.


    Reply to author    Forward  
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.
Blake McBride  
View profile
 More options Jan 10, 4:56 pm
Newsgroups: comp.lang.lisp
From: Blake McBride <bl...@mcbride.name>
Date: Thu, 10 Jan 2008 15:56:01 -0600
Local: Thurs, Jan 10 2008 4:56 pm
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2

Kent M Pitman wrote:
> Elegance is a term that is not canonically defined.  Be very careful
> about this term.  There are many forms of elegance.

I would define "elegance" as follows.

One program is more elegant than another that solves the same problem at
least as well but in a simpler manner.

Blake McBride


    Reply to author    Forward  
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.
Pascal Costanza  
View profile
 More options Jan 10, 4:58 pm
Newsgroups: comp.lang.lisp
From: Pascal Costanza <p...@p-cos.net>
Date: Thu, 10 Jan 2008 22:58:27 +0100
Local: Thurs, Jan 10 2008 4:58 pm
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2

Blake McBride wrote:
> Kent M Pitman wrote:
>> Elegance is a term that is not canonically defined.  Be very careful
>> about this term.  There are many forms of elegance.

> I would define "elegance" as follows.

> One program is more elegant than another that solves the same problem at
> least as well but in a simpler manner.

Now we only need to define "simple." ;)

Pascal

--
1st European Lisp Symposium (ELS'08)
http://prog.vub.ac.be/~pcostanza/els08/

My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/


    Reply to author    Forward  
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.
Christopher Browne  
View profile
 More options Jan 10, 5:24 pm
Newsgroups: comp.lang.lisp
From: Christopher Browne <cbbro...@ca.afilias.info>
Date: Thu, 10 Jan 2008 22:24:14 GMT
Local: Thurs, Jan 10 2008 5:24 pm
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2

Pascal Costanza <p...@p-cos.net> writes:
> Blake McBride wrote:
>> Kent M Pitman wrote:
>>> Elegance is a term that is not canonically defined.  Be very careful
>>> about this term.  There are many forms of elegance.
>> I would define "elegance" as follows.
>> One program is more elegant than another that solves the same
>> problem at least as well but in a simpler manner.

> Now we only need to define "simple." ;)

"Shorter" is an objective measure, and it is common for "more elegant"
approaches to be shorter than "less elegant" approaches.

"Fewer lines" does not usually signal a more elegant mathematical
proof, but there's a strong likelihood that "fewer symbols" is
suggestive of such...
--
output = ("cbbrowne" "@" "linuxfinances.info")
http://www3.sympatico.ca/cbbrowne/sgml.html
Never lend your car to anyone  to whom you have given birth to.
--Erma Bombeck


    Reply to author    Forward  
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 Jan 10, 9:33 pm
Newsgroups: comp.lang.lisp
From: Kent M Pitman <pit...@nhplace.com>
Date: 10 Jan 2008 21:33:22 -0500
Local: Thurs, Jan 10 2008 9:33 pm
Subject: Re: Noob Wonders: Lisp-1 vs. Lisp-2

Christopher Browne <cbbro...@ca.afilias.info> writes:
> Pascal Costanza <p...@p-cos.net> writes:
> > Blake McBride wrote:
> >> Kent M Pitman wrote:
> >>> Elegance is a term that is not canonically defined.  Be very careful
> >>> about this term.  There are many forms of elegance.
> >> I would define "elegance" as follows.
> >> One program is more elegant than another that solves the same
> >> problem at least as well but in a simpler manner.

> > Now we only need to define "simple." ;)

> "Shorter" is an objective measure, and it is common for "more elegant"
> approaches to be shorter than "less elegant" approaches.

Yeah, that's one reason Teco and APL have been so popular.

> "Fewer lines" does not usually signal a more elegant mathematical
> proof, but there's a strong likelihood that "fewer symbols" is
> suggestive of such...

Certainly... sometimes.  But I don't think that if you ask people
about elegance without biasing the input, or if you show people
various solutions and ask which is most elegant, with a properly
distributed set of inputs, that you'll get answers that uniformly say
this is so.  There is an elegance in Shakespeare, even though I
suspect it is not a minimal form.  There is language design elegance
in Esperanto, and yet people aren't rushing to it o