Path: utzoo!utgpu!watserv1!watmath!att!att!rutgers!cs.utexas.edu!uunet!mcsun!ukc!edcastle!dcl-cs!aber-cs!athene!pcg From: pcg@cs.aber.ac.uk (Piercarlo Grandi) Newsgroups: comp.lang.misc Subject: Re: REFs or aliases? Message-ID: Date: 3 Nov 90 19:15:02 GMT References: <1990Oct28.165903.9627@newcastle.ac.uk> <8960021@hpfcso.HP.COM> <1990Nov1.204843.18771@newcastle.ac.uk> Sender: pcg@aber-cs.UUCP Organization: Coleg Prifysgol Cymru Lines: 48 In-reply-to: Chris.Holt@newcastle.ac.uk's message of 1 Nov 90 20:48:43 GMT On 1 Nov 90 20:48:43 GMT, Chris.Holt@newcastle.ac.uk (Chris Holt) said: Holt> Given an arbitrary domain, e.g. sets of integers, it is always Holt> possible to introduce a monadic operation f that extends that Holt> domain. So, given a value such as {1,3,4}, we can apply f to Holt> it to obtain a new value f{1,3,4}; and [ ... so on ... ] Holt> The question is, why bother? Forget about machine addresses and Holt> locations and pointers right now; Ah, but they are of the essence! Machines actually work like that and moving around elements of the codomain of f may be cheaper than moving around elements of its domain. You can also, given the fact that you have for other reasons to deal with f and its codomain, encode information in the codomain (hash linking, BIBOP style tagging, ...). Holt> the point is that introducing such an additional operation Holt> complicates the domain, and I can't see any redeeming social value Holt> in so doing (at least that has been presented yet). But then, I Holt> prefer programs to be as simple as possible... It does complicate things (my original remark, please :->), but the redeeming social value is that it may be more cost effective, *at the appropriate (low) abstraction level*. That's a social, rather than mathematical value: Holt> This whole discussion of pointers (REFs) seems too concerned with Holt> the wrong things to me (but then, I'm more concerned with Holt> semantics; people worried about efficiency can hit "n" now). I do agree that pointers are never necessary, and actually complicate life, but they allow you to conserve space and time. Machine level efficiency does matter, or else we would be using relational database languages to write operating systems (not such a far fetched idea, actually -- I have considered it...). A lower constant factor of time or space complexity (because pointers do not buy you more) is not interesting to the mathematician, but it is to people that sign cheques. I think that they are concerned with the right things too. As to me, I am concerned about both efficiency and semantics, and which compromises between the two are feasible and cost effective under which conditions. -- Piercarlo "Peter" Grandi | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcsun!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk