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!