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: f4fd2,23202754c9ce78dd X-Google-Attributes: gidf4fd2,public X-Google-Thread: fac41,15edb893ef79e231 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,15edb893ef79e231 X-Google-Attributes: gid103376,public X-Google-Thread: 114809,15edb893ef79e231 X-Google-Attributes: gid114809,public X-Google-ArrivalTime: 2002-01-20 17:53:02 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!newsfeed.direct.ca!look.ca!newsfeed1.earthlink.net!newsfeed2.earthlink.net!newsfeed.earthlink.net!news.mindspring.net!not-for-mail From: Richard Riehle Newsgroups: comp.lang.lisp,comp.lang.ada,comp.lang.eiffel,comp.lang.smalltalk Subject: Re: True faiths ( was Re: The true faith ) Date: Sun, 20 Jan 2002 17:42:40 -0800 Organization: AdaWorks Software Engineering Message-ID: <3C4B720F.F77B2552@adaworks.com> References: <%njZ7.279$iR.150960@news3.calgary.shaw.ca> <3c36fbc5_10@news.newsgroups.com> <4idg3u40ermnp682n6igc5gudp7hajkea9@4ax.com> <76be8851.0201101909.9db0718@posting.google.com> <9jtu3u8cq92b05j47uat3412tok6hqu1ki@4ax.com> <3C3F8689.377A9F0F@brising.com> <3219936759616091@naggum.net> <3C483CE7.D61D1BF@removeme.gst.com> <3C4863C5.6040406@mail.com> <3C48AE35.BA38ED04@adaworks.com> <3C4A58B8.10304@mail.com> Reply-To: richard@adaworks.com NNTP-Posting-Host: 9e.fc.cc.85 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Server-Date: 21 Jan 2002 01:52:17 GMT X-Mailer: Mozilla 4.7 [en] (Win98; I) X-Accept-Language: en Xref: archiver1.google.com comp.lang.lisp:24823 comp.lang.ada:19127 comp.lang.eiffel:5478 comp.lang.smalltalk:18302 Date: 2002-01-21T01:52:17+00:00 List-Id: Hyman Rosen wrote: > Richard Riehle wrote: > > > procedure Copy_Deep (Source : in T; Target : in out T); > > procedure Copy_Shallow (Source : in T; Target : in out T); > > I dislike the notion of providing these methods as external interfaces > to a type. It seems wrong to me for a client to have to know what kind > of copy to use - that's the type's business to know. Well I don't like having an assignment statement that behaves in an unpredictable way when I use it. So I prefer having the copy semantics spelled out as clearly as possible. This clarity assures me that, when I call a method, it will behave as I expected. From my perspective, clarity is an essential feature of a type. Behaving according to my expectations is another nice feature for any method, whether it is assignment or some other method. As to the client needing to know which copy to use, in practice we would make only one available, but we would make clear the semantics of that copy. The other point is that using Ada's limited types, we don't have to worry about making mistakes regarding the assignment operation. Richard Riehle