Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!ll-xn!mit-amt!mit-eddie!mit-vax!smc From: smc@mit-vax.UUCP (Stewart M. Clamen) Newsgroups: net.lang.lisp Subject: Re: Abusing "define" in Scheme... (car crashes?) Message-ID: <73@mit-vax.UUCP> Date: Sun, 25-May-86 19:41:40 EDT Article-I.D.: mit-vax.73 Posted: Sun May 25 19:41:40 1986 Date-Received: Tue, 27-May-86 06:53:31 EDT References: <13508@ucla-cs.ARPA> Reply-To: smc@mit-vax.UUCP (Stewart M. Clamen) Distribution: net Organization: MIT, Cambridge, MA Lines: 23 Keywords: Scheme, S&ICP, CAR In article <13508@ucla-cs.ARPA> hydar@ucla-cs.ARPA (Dan Hydar) writes: > > > Does anyone know if Scheme is defined such that ANY binding can be > changed or is there some set of functions/identifiers that can be (or > MUST be) prevented from being re-defined? > > For instance --- are you able to do blatantly stupid things like: > > (define car 5) As a matter of fact, redefinition of the PAIR abstraction (mainly CAR, CDR, and CONS) is the subject of a number of examples in Abelson and Sussman's _Structure_and_Interpretation_of_Computer_Programs_. Exercises 2.3 and 2.4 ask the student to define a new implementation for the "primitives" which preserve their functionality. -- ---------------------------------------------------- ARPA: SMC%MIT-OZ@MIT-MC.ARPA USENET: ...!decvax!genrad!mit-eddie!smc%mit-oz