Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/17/84; site opus.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!talcott!harvard!seismo!hao!nbires!opus!rcd From: rcd@opus.UUCP (Dick Dunn) Newsgroups: net.lang Subject: Re: passing a const by reference Message-ID: <1087@opus.UUCP> Date: Tue, 12-Feb-85 05:16:56 EST Article-I.D.: opus.1087 Posted: Tue Feb 12 05:16:56 1985 Date-Received: Thu, 14-Feb-85 01:46:44 EST References: <248@wdl1.UUCP> Organization: NBI,Inc, Boulder CO Lines: 23 > Ada has IN, OUT, and IN-OUT arguments. This is clearly the > right way to go. By-reference or by-value then becomes an implementation > detail. It's only an implementation detail if the abstraction of your particular problem is more concerned with the gozinta/gozouta-ness of the arguments. Reference and value parameters provide an equally valid abstraction. And, of course, there are real-world problems with mud and bits stuck to them, where the question of which "implementation detail" was chosen is the major issue. In other words, "...clearly the right way to go..." is nothing but a subjective opinion. Ada was not the first language to try the IN/OUT/IN- OUT device, and other languages since Ada haven't flocked to it. I recall joking in a physics class about the way we made simplifying assumptions--something like "frictionless elephants whose mass can be neglected." There seems to be a programming-language equivalent in "instantly copyable objects whose storage can be neglected." -- Dick Dunn {hao,ucbvax,allegra}!nbires!rcd (303)444-5710 x3086 ...Cerebus for dictator!