pathnames [Re: files, printers, etc. [Re: The feel of a Lisp

Chris Bitmead uid(x22068) Chris.Bitmead@Alcatel.com.au
Mon, 05 May 1997 10:47:58 +1000


>Now, all pathnames start from the global root - the set of all hosts
>on an Internet system. EG:
>
>(abwillms.demon.co.uk Public Hello!)
>
>Meaning "the object Hello inside the object Public inside the
>object abwillms.demon.co.uk".

I think this is subtley locking yourself into a particular paradigm of
a Unix style tree structure. A true OOFS would not limit itself to
simple tree style repositries. There might be all sorts of other data
structures more appropriate for storing your objects and there might
be all sort of better algorithms more suited for retrieving it than by
a single string name.

I prefer 
(get-name "Hello" 
		(get-name "Public" (get-name "abwillms.demon.co.uk" *root*)))

It looks more complicated here because I am limiting the case to lists
which is not always optimal. The real power comes when you have a real
problem to solve and you can use a better set of access methods for
getting at your objects.

>If we want a CWD, we must specify it, by using a simple form of backquoting
>that replaces a symbol with it's binded value in the
>pathnames environment - by putting it in a sublist:
>
> - local referring to the local machine
>
>((local) Public Hello!)
>
> - . referring to the CWD
>
>((.) Hello!)

If you want a CWD you can just store one in a variable. Then you can
get objects, instead of relative to *root*, but relative to which ever
object you wish.

I think a single global concept of CWD seems brain damaged to me.