Xref: utzoo comp.lang.smalltalk:1296 comp.lang.prolog:1848
Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!usc!aero!abbott
From: abbott@aerospace.aero.org (Russell J. Abbott)
Newsgroups: comp.lang.smalltalk,comp.lang.prolog
Subject: Re: Tracking Interaction Histories
Message-ID: <56248@aerospace.AERO.ORG>
Date: 18 Aug 89 19:43:38 GMT
References: <56231@aerospace.AERO.ORG>
Reply-To: abbott@aero.UUCP (Russell J. Abbott)
Organization: The Aerospace Corporation, El Segundo, CA
Lines: 24

In article <56231@aerospace.AERO.ORG> I wrote:
> One feature I want to include in a browsing system I'm building is to
> let users capture, edit, and then replay sequences of browsing
> operations.  Is there a good way to do that in smalltalk?

This seems to be a special case of a more general problem.  I've also
been thinking about how to implement Prolog-like logical variables in
Smalltalk.  The obvious thing would be to define a class called Variable
with one instance variable for the variable's referenced value, if any.
The problem this raises is that one wants to be able to send to Variable
objects messages to be passed on to the variable's referent.  But in
order for the variable to be able to do that it has to have built into
it selectors for all the possible calls it's referents may ever receive,
which is impossible.  What is really needed is some sort of meta-method
that can handle any call.  But as far as I know, smalltalk doesn't
support such a thing.  (Is that true?  I'm really just a smalltalk
novice.)

One would need a similar capability if one wanted to write some sort of
interpreter which could accept any call at all.  If one had such an
interpreter one could build the history maintainer I asked for
originally.  How does the smalltalk world handle the need for this sort
of thing?-- 
-- Russ abbott@itro3.aero.org