Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!uakari.primate.wisc.edu!xanth!mcnc!rti!ntcsd1!mps From: mps@ntcsd1.UUCP (Michael P. Smith) Newsgroups: comp.lang.lisp Subject: Re: NCONC & Functions Summary: Irresponsible rumor-mongering nipped in the bud; further blathering Keywords: Franz Message-ID: <465@ntcsd1.UUCP> Date: 29 Nov 89 22:49:18 GMT References: <464@ntcsd1.UUCP> Reply-To: mps@ntcsd1.UUCP (Michael Smith) Distribution: na Organization: Northern Telecom, Research Triangle Park, North Carolina Lines: 51 In article <464@ntcsd1.UUCP> mps@ntcsd1.UUCP (Michael Smith) writes: > >On both a TI and a Sun (using Sun Common Lisp (lucid)), the following occurs: > > >(DEFUN foo1 () '(a b c)) > >FOO1 > >(foo1) > >(A B C) > >(NCONC (foo1) '(d e f)) > >(A B C D E F) > >(foo1) > >(A B C D E F) > >(DEFUN foo2 () (LIST 'a 'b 'c)) is unaffected in the same situation. > >by functions they are not part of? I'm told that even FOO2 is affected when >running Franz on a DEC station. Now I'm told by the same source that FOO2 is NOT affected in Franz. I apologize posting something I hadn't ascertained myself. BTW, thanks to some early responses I'm a little clearer about what bothers me about this. If FOO1 had referred to a variable whose value was changed as a result of NCONCing the result of calling FOO1 with something else, I would not have been surprised. I was surprised to find that even constants can be modified (just not re-assigned or bound), but I can live with it. I'm less happy that some apparently read p. 86 of Steele (1st ed.) to imply that quoted expressions are just like lisp constants in this respect (i.e., modifi- able). But what really bothers me is this: (SYMBOL-FUNCTION foo1) evaluated before the NCONC yields: (NAMED-LAMBDA FOO1 NIL (BLOCK FOO1 '(A B C))) After the NCONC, we get: (NAMED-LAMBDA FOO1 NIL (BLOCK FOO1 '(A B C D E F))). These look like different functions to me. (DEFUN foo3 () *glorp*), where *glorp* is a lisp constant assigned '(A B C) will exhibit the same behavior. But at least its function definition remains unchanged. Mike Smith ( mps@ntcsd1 | mcnc!ntcsd1!mps )