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

Chris Bitmead uid(x22068) Chris.Bitmead@Alcatel.com.au
Wed, 07 May 1997 11:45:36 +1000


>You could write:
>
>(*employees* 'pictures #(picture of Lionel))
>(*employees* 'names "Lionel B. Snell")
>(*employees* 'surname "Snell"
>
>The directory objects "pictures", "names", and "surname" are all in
>fact accessors for one database-like object.

So what's the deal with this very un-lispish syntax? Why not do things
the way it's always been done...

(search-by-picture *employees* #(picture of Lionel))
(search-by-name *employees* "Lionel B. Snell")
(search-by-surname *employees "Snell")

;;people older than 50
((lambda (list) (mapcar list (lambda (item) (- (date) (birthday item)) < 50)))
		*employees*)

>> >> >((.) 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.
> 
>> Well if it's a standard then that kind of implys a global
>> concept. Perhaps I don't understand you right.
>
>I don't explain myself too well, I'm afraid. The . is the idenitifier of
>a variable, yes; just in line with the UNIXy convention, this particular
>person has called his PWD "."!

Then I don't follow why the "." is in between "()" as if "." was the
name of a function.
 
>> >(make-path *internet* "abwillms.demon.co.uk" 'Public 'Hello!)
>> 
>> You're still assuming simple tree structure with a single key for
>> getting at your objects.
>
>But no :-)

I can't see how. What exactly is the symbols 'Public and 'Hello
supposed to be then?