From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,92d1af21ade61406 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-11-09 10:40:52 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!dialin-145-254-047-204.arcor-ip.NET!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Problems with 'class, help anyone? Date: Sat, 09 Nov 2002 19:40:29 +0100 Organization: At home Message-ID: References: <3DBE2593.9080800@worldnet.att.net> <3DBF9437.8090408@worldnet.att.net> <3DC74F23.80308@worldnet.att.net> <3DC91DBB.C85F27E@brighton.ac.uk> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: dialin-145-254-047-204.arcor-ip.net (145.254.47.204) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Trace: fu-berlin.de 1036867251 10815003 145.254.47.204 (16 [77047]) User-Agent: KNode/0.7.1 Xref: archiver1.google.com comp.lang.ada:30660 Date: 2002-11-09T19:40:29+01:00 List-Id: Robert A Duff wrote: > "Dmitry A. Kazakov" writes: > >> That's right, but there is a case where "function" really differs from >> "procedure". I mean protected objects. ... > > That's *another* example of basing things on a kludge. > Certainly, it makes sense to distinguish read-only from read-write > locking. But to base that on "function" vs "procedure" is ... > well, Yuck. Absolutely > Protected functions are *not* functions (in the maths sense), > and therefore should not be so called. Well, strictly speaking "+" is also not the mathematical +. Who cares. But I agree that protected function is not the best name for the thing. >>... "function" vs. "procedure" for a >> protected object could potentially mean different implementation and >> performance. So I think that one should leave "function"s as they are, >> and just allow procedures with results: >> >> procedure Foo (...) return Bar; > > Yeah, and then eliminate the "function Foo..." syntax. > That would solve the problem! > > Slight incompatibility... ;-) I am not afraid of! (:-)) But we still need some keywords for: 1. Subroutine (=procedure) 2. Subroutine with no side-effects other than on the arguments (=?) 3. Subroutine with only one side-effect on the result (=?) "function" in Ada is sort of 1. dressed as 3. (:-() {1,2,3} is multiplied to: A. Subroutine with no queue B. Subroutine with a queue (entry) Well together it makes 3x2=6 different variants! And not to forget the "notation" axis: i. operational x+y ii. prefix (subroutines of protected objects, tasks, attributes) iii. functional A(x,y) iv. aggregated (x,y,z) (should Ada have user-defined ones?) -- Regards, Dmitry A. Kazakov www.dmitry-kazakov.de