Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!ix.netcom.com!netcom.com!alderson
From: alderson@netcom.com (Richard M. Alderson III)
Subject: Re: Common Lisp's dual name space
In-Reply-To: ok@goanna.cs.rmit.oz.au's message of 9 Nov 1994 19:08:58 +1100
Message-ID: <aldersonCz0wnD.Frx@netcom.com>
Reply-To: alderson@netcom.com
Fcc: /u52/alderson/postings
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
References: <38ofd8$set@edge.ercnet.com> <38otf8$7tj@tools.near.net>
	<39d1m2$1th@goanna.cs.rmit.oz.au> <39e1rr$g1v@tools.near.net>
	<39q02q$sib@goanna.cs.rmit.oz.au>
Date: Wed, 9 Nov 1994 23:16:24 GMT
Lines: 58

In article <39q02q$sib@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au
(Richard A. O'Keefe) writes:

>barmar@nic.near.net (Barry Margolin) writes:
>>A point I made in an earlier posting is that it's natural for humans to
>>think of nouns and verbs as being independent.

>There are two fairly obvious retorts to this.
>(1) In an expression like (list 1 2 3), 'list' is functioning as a NOUN!
>    Software engineering texts like Ledgard & Tauer recommend that
>    - routines called for their effect should have names that are
>	 (imperative) verb (phrases), e.g. PrintReport
>	 ;; T/Scheme equivalent: a "!" suffix, e.g. print-report!
>    - routines used as predicates should have names that are
>	 adjective (phrases), e.g. NeedsPrinting
>	 ;; T/Scheme equivalent: a "?" suffix, e.g. needs-printing?
>    - routines called to obtain a value other than as a predicate
>	 should have names that are noun (phrases), e.g. CurrentReport
>	 ;; T/Scheme equivalent: no suffix, e.g. current-report
>    Certainly, the best linguistic parallel for (list 1 2 3) is a noun
>    phrase with 'list' as the head noun and 1, 2, 3 as complements or
>    adjuncts.

No, this is an imperative sentence, which can be translated into English as
"Make me a list containing the three elements 1, 2, and 3 in order."

The equivalent of nouns in Lisp are self-evaluating objects, such as numbers or
quoted items.

[interesting, but irrelevant to Lisp, discussion of Maaori morphosyntax elided
for space reasons --rma]

>>It would be very easy to inadvertently write something like:
>>(let* ((list (list a b c))
>>       (car (car list))
>>       (caar (car car))) ;; <-- oops
>>  ...)

>>because it's unnatural to equate the use of "car" as a verb with its use as
>>a noun.

>But there is no use of 'car' as a verb whatsoever in this example.  (car X)
>stands for "the head of X", and 'head' is here used as a noun; it may be
>glossed as "the first component of X" if X is regarded as a pair, and again,
>'component' is here used as a noun.

Once again, this is an imperative verb, not a noun:  "Go fetch me the head of
the object I've given you a pointer to."

To take this back to Scheme for a moment, the fact that Schemers do not mark
the imperative ("mark it with a zero morpheme") is consistent with general
Indo-European verbal morphology; the non-imperative forms are marked explicitly
in Scheme (and in Common Lisp to some extent:  Cf. the -P and N- markers).
-- 
Rich Alderson   You know the sort of thing that you can find in any dictionary
                of a strange language, and which so excites the amateur philo-
                logists, itching to derive one tongue from another that they
                know better: a word that is nearly the same in form and meaning
                as the corresponding word in English, or Latin, or Hebrew, or
                what not.
                                                --J. R. R. Tolkien,
alderson@netcom.com                               _The Notion Club Papers_
