Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!rutgers!apple!voder!pyramid!octopus!vsi1!altnet!uunet!mcvax!ukc!etive!aiva!jeff From: jeff@aiva.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp Subject: Re: Question about eval Message-ID: <621@aiva.ed.ac.uk> Date: 15 Oct 88 17:15:21 GMT References: <13733@iuvax.cs.indiana.edu> Reply-To: jeff@uk.ac.ed.aiva (Jeff Dalton) Organization: Dept. of AI, Univ. of Edinburgh, UK Lines: 26 In article <13733@iuvax.cs.indiana.edu> dfried@iuvax.cs.indiana.edu (Dan Friedman) writes: >Are there any LISP implementations, especially of Common LISP, >which get 5 instead of 1 as the result of the following run? > (defun eval (x) 1); then 5 => 1 Yes, KCL. >Does this change to eval ever change what load does? No. >Does (setf (symbol-function 'eval) #'(lambda (x) 1)) >do exactly the same thing as (defun eval (x) 1) in all >Common Lisp implementations? Probably not. DEFUN puts in a BLOCK, for one thing. Also, I dont' think there's anyhting that requires it to set the function value exactly the same way SETF of SYMBOL-FUNCTION does. If you want to redefine EVAL and be sure it works, I think you have to make a new package that shadows EVAL and LOAD, redefines them, and (depending on how you want to do this) exports all the other symbols the LISP package does. -- Jeff