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
Question: Lisp's power points
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 26 - 30 of 30 - Collapse all  -  Translate all to Translated (View all originals) < Older 
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
 
cbbrowne  
View profile  
 More options Oct 14 2001, 5:30 pm
Newsgroups: comp.lang.lisp
From: cbbro...@acm.org
Date: Sun, 14 Oct 2001 21:22:42 GMT
Local: Sun, Oct 14 2001 5:22 pm
Subject: Re: Question: Lisp's power points

Erik Naggum <e...@naggum.net> writes:
> * Rolf Wester
> | Could you please give me some examples showing in what respect
> | Lisp has a _much_ higher level of abstraction.
>Special variables leaps to mind as the obvious first choice, more
>obvious than closures, the Lisp object reader and writer, the type
>hierarchy and dynamic types, the entire condition system, macros,
>compiler-macros, etc, which I just mention in no particular order.
>Of course, if your point is to gripe about the choice of "much", you
>will never be satisifed with any answer I could give you, anyway, so
>either you accept this or you do not. And if you had had a real
>argument, it would have been expressed properly, so I am inclined to
>believe you are just trolling and will not respond to any further
>trolling-like responses you choose to post, but please feel free to
>argue your case if you have one.

What would be nice to have would be "pithy" examples of code to
exemplify these sorts of things.

The newcomer (whether troll or real) could easily walk away from this
saying:
  "Hmm...   Special variables.  I wonder what those are?"

A quick look at the HyperSpec certainly does _not_ cause the
implications of them to leap out at one; the quick browse raises a lot
more questions than it answers:

 - Why did you say "special variable," when all the glossary indicates
   is "see dynamic variable"?

 - Then there's these other terms, "dynamic extent," "indefinite
   extent," "dynamic scope," and "dynamic environment."  They all seem
   somewhat relevant, but how does it go together?

It definitely isn't a "pithy" explanation.

The section in CLTL2 on "Scope and Extent" explains it a little more
clearly, I think, but it doesn't get to the point of explaining why it
would be considered _important_.

A reasonably "pithy" example is shown here:
  <http://www.n-a-n-o.com/lisp/cmucl-tutorials/LISP-tutorial-12.html>

It doesn't say anything that would cause Special Variable to "leap to
mind as the obvious first choice."

Note that I'm not disagreeing with the notion that SV's are useful or
important; I _would_ disagree with the notion that this is either
obvious, or even a represents a notion readily accessible to a novice.

I don't think _any_ of the items you list are "obviously obvious;" I
just did a quick review of the set of introductory documents on CL,
and few give much, if any treatment of them.

That could mean (at least :-)) two things:

1.  Perhaps you're wrong.

    I don't think you're particularly wrong.  There could be quibbling
    over "who's on first," but the features you describe do appear
    like good candidates for "_much_ higher level of abstraction."

2.  The literature is doing a bad job of communicating these sorts of
features.

This seems to me to be a _whole_ lot more likely.

There are two books on CLOS (one of which I have seen) which describe
its merits.

"On Lisp" sells hard the power of macros.

Various references do describe the importance of closures.

But the "You really need to know and understand and use special
variables, the type hierarchy, and custom readers" parts are _not_
"evangelized" in the literature in similar manner to [say] CLOS.

Note that I am _not_ being critical about either CLTL2 or CLHS on
this; they do not have, in their proper scope of intent, the mission
of explaining: "Here are techniques that you should use!"

I think the world could use an "essay" or "book" that describes 7
different applications of readtables, for instance, sort of
paralleling Keene's book on CLOS.
--
(reverse (concatenate 'string "gro.mca@" "enworbbc"))
http://www.ntlug.org/~cbbrowne/lisp.html
"It is easier to optimize correct code, than correct optimized code"
-- Yves Deville


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Oct 14 2001, 5:47 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Sun, 14 Oct 2001 21:46:28 GMT
Local: Sun, Oct 14 2001 5:46 pm
Subject: Re: Question: Lisp's power points
* cbbro...@acm.org
| What would be nice to have would be "pithy" examples of code to
| exemplify these sorts of things.

  Then you go write them.  In my experience, examples illustrating an
  unknown concept usually mislead people.  Besides, writing examples that
  actually work to illustrate _concepts_ takes a lot of time and effort.
  May I tell you that publication here is not exactly _rewarded_ when you
  only complain about people not doing enough to satisfy you?  Why not just
  write and publish the stuff you missed yourself if it would be so nice?

| I think the world could use an "essay" or "book" that describes 7
| different applications of readtables, for instance, sort of paralleling
| Keene's book on CLOS.

  Again, feel free to write it yourself.  It is quite enjoyable until you
  get complaints from people who _demand_ more without any encouragement.

///
--
  The United Nations before and after the leadership of Kofi Annan are two
  very different organizations.  The "before" United Nations did not deserve
  much credit and certainly not a Nobel peace prize.  The "after" United
  Nations equally certainly does.  I applaud the Nobel committee's choice.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Oct 14 2001, 5:57 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: Sun, 14 Oct 2001 21:55:46 GMT
Local: Sun, Oct 14 2001 5:55 pm
Subject: Re: Question: Lisp's power points
* Roger Corman
| I just want to make a comment here.  Common Lisp does not specify how
| special variables interact with threads, so this is an area that is
| debatable.

  This is true, but extending the concept of special binding to threads is
  not a conceptual hurdle, it is more of an implementational hurdle.

| In my opinion an optimal implementation of per-thread special variable
| bindings does not require any re-binding.

  I was unspecific.  The design I had mind was threads managed by a single,
  monolithic process, but I did cover the case of separate processes, as
  well, those needing IPC and shared memory.  I.e., the process scheduler
  in the Common Lisp system, not the kernel, would have to do a context
  switch that would include saving and restoring the binding stack of the
  new context.  This is one of the drawbacks of having your own scheduler,
  but there are also serious drawbacks to using operating system threads
  and processes, especially when using shared memory for all the global
  _objects_, and that includes code.

| And if all those threads are active at once, no problem.  No context
| switching need occur.

  Well, context switching between threads at the operating system level is
  different from context switching between threads when privately managed.

| I can't see a reason for a thread to re-bind it, and then have all other
| threads see the binding.

  That was clearly not what I wanted to say, either.

| I think you would have multiple threads trying to undo each others
| bindings, possibly.

  Only if you assume a globally shared memory and operating system threads.
  I find it fascinating that you only consider those kinds of threads and
  not the well-known technique of managing multiprocessing privately.

///
--
  The United Nations before and after the leadership of Kofi Annan are two
  very different organizations.  The "before" United Nations did not deserve
  much credit and certainly not a Nobel peace prize.  The "after" United
  Nations equally certainly does.  I applaud the Nobel committee's choice.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Bradshaw  
View profile  
 More options Oct 15 2001, 5:08 am
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@tfeb.org>
Date: 15 Oct 2001 10:27:57 +0100
Local: Mon, Oct 15 2001 5:27 am
Subject: Re: Question: Lisp's power points

Erik Naggum <e...@naggum.net> writes:

>   Well, context switching between threads at the operating system level is
>   different from context switching between threads when privately managed.

But on a more-than-one-processor machine there may be no context switching,
either at OS or Lisp level.

--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.
David Boles  
View profile  
 More options Oct 15 2001, 8:44 pm
Newsgroups: comp.lang.lisp
From: David Boles <dabo...@swbell.net>
Date: Tue, 16 Oct 2001 00:40:36 GMT
Local: Mon, Oct 15 2001 8:40 pm
Subject: Re: Question: Lisp's power points

 > ...

My apologies for straying just a teensy bit, but the truth about
COM/DCOM is so poorly understood by non-Windows people that it
bears pointing out.

In both RPC and CORBA IDL's, one can write:

struct Point {
     int x;
     int y;

}

and then define functions that took items with type "Point" as
arguments. You can write this in COM, but you could not use such
a function across the various COM languages until, at best,
recently, *unless you write you own code to marshal a Point*.
How any company could have shipped a cross-language RPC mechanism
in the 90's that couldn't support basic struct's without being
laughed at is beyond me.

Various service packs and releases of language runtimes were
supposed to make all of this go away at some point. As a company
we escaped the whole COM/DCOM/COM+ debacle and discovered that
underneath all that cruft is a fairly reliable and capable OS.

  - db


 
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.
End of messages < Older 
« Back to Discussions « Newer topic     Older topic »