Path: utzoo!attcan!uunet!know!sdd.hp.com!zaphod.mps.ohio-state.edu!lavaca.uh.edu!menudo.uh.edu!sugar!ficc!peter From: peter@ficc.ferranti.com (Peter da Silva) Newsgroups: comp.lang.misc Subject: Re: Re^2: Some things that pointer-less languages can't do efficiently Message-ID: Date: 23 Oct 90 20:12:49 GMT References: <26739:Oct1023:44:2690@kramden.acf.nyu.edu> <65450@lanl.gov> <10397:Oct1212:55:1090@kramden.acf.nyu.edu> <3975@goanna.cs.rmit.oz.au> <415@data.UUCP> <+CI6:YD@xds13.ferranti.com> <3407.2720318d@cc.helsinki.fi> Reply-To: peter@ficc.ferranti.com (Peter da Silva) Organization: Xenix Support, FICC Lines: 33 In article <3407.2720318d@cc.helsinki.fi> jpiitulainen@cc.helsinki.fi writes: > In article <+CI6:YD@xds13.ferranti.com>, peter@ficc.ferranti.com (Peter > da Silva) writes: > > In article <415@data.UUCP> kend@data.UUCP (Ken Dickey) writes: > >> There are a number of programming languages, Scheme and ML among them, > >> which do not have a pointer abstraction. > > The *only* abstractions in scheme are a pair of pointers or a value. > It is a pair of values. Pointers to values, as separate from values, do > not exist. So, (a) is the same as a? > Pointers (addresses) are usually used in the implementation, No, addresses are not what I mean by pointers. The definition of a pointer that I am using is "a token that can refer to any language object". The operative word is "any". > In Scheme, any > pair or vector can hold arbitrarily big values---even itself---pointers > are not needed and there is no such thing as a pointer to an integer. Really? As far as aliasing and debugging are concerned (3) is a pointer to 3. (well, to 3 and nil) > The same problems are there, when applicable. Lists are just chains of > pairs, or pairs who's cdr fields are pairs, and the cdr pair can be a > part of some other list, too. Thus mutation is dangerous. *Exactly*, just as arbitrary pointer operations are dangerous. And for exactly the same reasons. -- Peter da Silva. `-_-' +1 713 274 5180. 'U` peter@ferranti.com