Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!news.mathworks.com!news.kei.com!nntp.coast.net!col.hp.com!news.dtc.hp.com!hplntx!hplntx.hpl.hp.com!gjr
From: gjr@hplgr2.hpl.hp.com (Guillermo (Bill) J. Rozas)
Subject: Re: R5RS?
Sender: news@hpl.hp.com (HPLabs Usenet Login)
Message-ID: <GJR.96Feb29145916@hplgr2.hpl.hp.com>
In-Reply-To: pk@vihertikka.cs.tut.fi's message of 29 Feb 1996 09:00:09 GMT
Date: Thu, 29 Feb 1996 22:59:16 GMT
Distribution: inet
Reply-To: gjr@hpl.hp.com
References: <4gc83r$617@news.simplex.nl> <4gfrfi$m7u@camelot.ccs.neu.edu>
	<leavens.824995212@larch> <4gi3p0$kvh@agate.berkeley.edu>
	<leavens.825012724@larch> <GJR.96Feb22191305@hplgr2.hpl.hp.com>
	<BLUME.96Feb27152646@zayin.cs.princeton.edu>
	<GJR.96Feb28133746@hplgr2.hpl.hp.com>
	<PK.96Feb29110009@vihertikka.cs.tut.fi>
Nntp-Posting-Host: hplgr2.hpl.hp.com
Organization: Hewlett-Packard Laboratories, Palo Alto, CA
Lines: 35

In article <PK.96Feb29110009@vihertikka.cs.tut.fi> pk@vihertikka.cs.tut.fi (Kellom{ki Pertti) writes:

|   From: pk@vihertikka.cs.tut.fi (Kellom{ki Pertti)
|   Newsgroups: comp.lang.scheme
|   Date: 29 Feb 1996 09:00:09 GMT
|
|   In article <GJR.96Feb28133746@hplgr2.hpl.hp.com> gjr@hplgr2.hpl.hp.com (Guillermo (Bill) J. Rozas) writes:
|      One of the beauties of Scheme and Lisp in my mind has always been the
|      ability to patch things as they are running -- programs often develop
|      by evolving rather than by redesign.  Opaque types and module systems
|      with private variables or procedures often make that difficult and
|      sometimes make that impossible.
|
|   I have always had the opinion that closures are one of the beauties of
|   Scheme and Lisp, and they certainly introduce mighty impenetrable
|   barriers. Or am I missing something in the fine print, i.e. the
|   denotational semantics :-0

I realize that in standard scheme they are impenetrable, but they need
not be.  MIT Scheme, just to give an example, has closures that can be
taken apart (and modified).

In fact, I imagine that most dialects do too.  The ability to take
them apart is very important for such things as

- backtrace debuggers
- trace packages
- general advice packages (break on entry/exit, debug on entry, etc.)

etc.

It is a shame that we can't write such things portably in Scheme,
although by undergoing some contortions you can sometimes emulate that
ability.

