pathnames [Re: files, printers, etc. [Re: The feel of a Lisp
Alaric B. Williams
alaric@abwillms.demon.co.uk
Mon, 5 May 1997 22:13:02 +0000
> >(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.
Not necessarily - the only thing I am asserting here is that groups
of objects may contain groups of objects. Those symbols, that
reference objects inside groups, could be anything - a group of
large-number prime factorisations, say, could use numeric
identifiers, and an analog associative store might accept
pictures as identifiers, returning the object most closely
matching - ie, there is an n:1 mapping of identifiers to objects.
> 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.
Agreed!
> 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.
Yes, I think I'd replace my "backquoter" with something more like that,
where every path is made by "consing" an identifier with an existing path.
As for syntax... well... write a macro :-)
> >((.) Hello!)
> If you want a CWD you can just store one in a variable.
That's what the . was, rather than a global concept... just a standard
identifier.
The CWD is really only a user-level concept anyway; it only complicates
programming tasks IMHO.
=> a new syntax:
(make-path *internet* "abwillms.demon.co.uk" 'Public 'Hello!)
ABW
--
Alaric B. Williams (alaric@abwillms.demon.co.uk)
---<## OpenDOS FAQ ##>---
Plain HTML: http://www.delorie.com/opendos/faq/
http://www.deltasoft.com/faq.html
Fancy HTML: http://www.deltasoft.com/faq0000.html