Path: utzoo!attcan!uunet!husc6!bloom-beacon!tut.cis.ohio-state.edu!osu-cis!att!alberta!ubc-cs!faculty.cs.ubc.ca!manis
From: manis@faculty.cs.ubc.ca (Vincent Manis)
Newsgroups: comp.lang.lisp
Subject: Re: nested function definitions
Message-ID: <3266@ubc-cs.UUCP>
Date: 22 Jun 88 20:58:00 GMT
References: <5862@spool.cs.wisc.edu> <5568@utah-cs.UUCP> <3257@ubc-cs.UUCP> <22427@think.UUCP>
Sender: nobody@ubc-cs.UUCP
Reply-To: manis@faculty.cs.ubc.ca (Vincent Manis)
Organization: UBC Department of Computer Science, Vancouver, B.C., Canada
Lines: 16

Barry Margolin asks why I think DEFUN should be local if SETQ can be
global. Basically, DEFUN performs an act of *binding*, whereas SETQ
does an *assignment*.  A function or value cell need not exist prior
to DEFUN (or any other DEF form), whereas such a cell must exist prior
to SETQ.

Because of this difference, I see DEFUN as a lot closer to LET than it
is to SETQ. Since LET is lexically scoped, so too should DEFUN.



Vincent Manis                    | manis@cs.ubc.ca
The Invisible City of Kitezh     | manis@cs.ubc.cdn
Department of Computer Science   | manis@ubc.csnet
University of British Columbia   | uunet!ubc-cs!manis
<>             |