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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ce0900b60ca3f616 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-11-05 02:29:52 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!130.133.1.3!fu-berlin.de!uni-berlin.de!tar-alcarin.cbb-automation.DE!not-for-mail From: dmitry@elros.cbb-automation.de (Dmitry A. Kazakov) Newsgroups: comp.lang.ada Subject: Re: Side-Effects in Functions [Rosen Trick] Date: Mon, 05 Nov 2001 10:29:50 GMT Message-ID: <3be666fe.6426140@News.CIS.DFN.DE> References: <9rti6v$hcu$1@news.huji.ac.il> <1EyE7.10050$xS6.13527@www.newsranger.com> <9rue9f$j4t$1@nh.pace.co.uk> <9ruiet$kqg$1@nh.pace.co.uk> <3BE3235D.E292B890@boeing.com> <3BE35498.9F6381A2@acm.org> <9s230d$107b5a$2@ID-25716.news.dfncis.de> <5ee5b646.0111040507.5ca7ea23@posting.google.com> <9s3tl3$111hco$1@ID-25716.news.dfncis.de> <5ee5b646.0111041846.93f3e07@posting.google.com> <9s5eub02j61@drn.newsguy.com> NNTP-Posting-Host: tar-alcarin.cbb-automation.de (212.79.194.111) X-Trace: fu-berlin.de 1004956190 34486972 212.79.194.111 (16 [77047]) X-Newsreader: Forte Free Agent 1.21/32.243 Xref: archiver1.google.com comp.lang.ada:15796 Date: 2001-11-05T10:29:50+00:00 List-Id: On 4 Nov 2001 23:26:03 -0800, pete@nospam wrote: >functions, in the mathemtical sense, do not accept an IN OUT paramters, >and do not have side effects. > >y=f(x), x here can never be modified by the function f(). > >so, Ada function is more like a math function. No function in a programming language may have no side effects. One could say that there are side effects which are of no interest, but no more than that. The discussion about in out parameters is proved to be evergreen (:-)). But what I presonally cannot understand is why not to allow PROCEDUREs having a result, i.e. procedure Find (Folder : in out Table) return Table_Token; procedure GetNext (Item_List : in out Iterator) return Element; etc. Regards, Dmitry Kazakov