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-Thread: 103376,24d7acf9b853aac8 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!feeder.news-service.com!newsfeed.straub-nv.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Mon, 09 Aug 2010 17:14:36 +0200 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: S-expression I/O in Ada References: <547afa6b-731e-475f-a7f2-eaefefb25861@k8g2000prh.googlegroups.com> <1qk2k63kzh7yv$.3jgc403xcqdw$.dlg@40tude.net> <8ae8e899-9eef-4c8c-982e-bfdfc10072f1@h17g2000pri.googlegroups.com> <258zlxrv4fn6.1vszho1rtmf48$.dlg@40tude.net> <984db477-973c-4a66-9bf6-e5348c9b95f2@n19g2000prf.googlegroups.com> <46866b8yq8nn$.151lqiwa0y2k6.dlg@40tude.net> <13b07f2c-2f35-43e0-83c5-1b572c65d323@y11g2000yqm.googlegroups.com> <13tpf7ya3evig$.h05p3x08059s$.dlg@40tude.net> <1omt2srxtpsga$.c3hbxthzo6cf.dlg@40tude.net> <1e4cch2df5uyb.18brqdd16dhv8.dlg@40tude.net> <14y70ke8am9qw$.2csc9eflvigg.dlg@40tude.net> In-Reply-To: <14y70ke8am9qw$.2csc9eflvigg.dlg@40tude.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4c601b5c$0$7665$9b4e6d93@newsspool1.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 09 Aug 2010 17:14:36 CEST NNTP-Posting-Host: 6e167fd0.newsspool1.arcor-online.net X-Trace: DXC=V1S7Hc>FA[0n`gW2MTm]<3ic==]BZ:af>4Fo<]lROoR1<`=YMgDjhg2gWaom=?WBl2nc\616M64>:Lh>_cHTX3j=gQb1CGa]UF6 X-Complaints-To: usenet-abuse@arcor.de Xref: g2news1.google.com comp.lang.ada:12984 Date: 2010-08-09T17:14:36+02:00 List-Id: On 09.08.10 16:38, Dmitry A. Kazakov wrote: > I think that all these usages require different types of modular types with > different sets of operations. So I would prefer a language extension which > would allow me construction of such types rather than built-in ones, which > satisfy no one. Just one example from a huge list, why "in" is not an > operation? > > if 0 /= (Mode and Alarm) then -- Isn't it awful? > > why am I not allowed to have: > > if Alarm in Mode then Is anything wrong with packed arrays of Booleans for status thingies? >> Writing "mod" whenever I want an expression that takes the modulus is >> a GOOD thing. "+" should always do an add, and nothing else. > > Huh, modular "+" *does* add in the ring. Your "+" does not! How many programmers, among those without a degree in math or in physics, know what a ring is? Hence, no "+" can do the "right thing", since "+" is overloaded. Not just in Ada, but also in popular understanding. A definition of the "+" operator, whose meaning(s) is (are) stipulated to be well known, seems impossible: everyone considers its meaning(s) as clearly established as the proper ingredients of lentil soup. Because the frames of reference used in the definition are an obvious pick, aren't they!? I don't remember when I have last read a final report on either the statistical meaning of "+" or on lentil soup ingredients research (other than our bi-weekly CVE :-) But I do remember finding collections of good recipes. Each recipe there is named with a unique identifier, and it lists operands (ingredients) and operations (preparation, cooking). The essential bit: use words or phrases that say what you mean. (By implication, express what you want others to understand.) Obviously, "+" does not express a recipe clearly, or not without lengthy exegesis... Imagine a programming language that is just like Ada with SPARK restrictions on naming. Then, throw out overloading of predefined names, too, of "+", for example. No more misunderstandings, then. But will this language be usable with beginners?