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,7332b19c66a79eea X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!feeder.news-service.com!news.netcologne.de!newsfeed-fusi2.netcologne.de!newsfeed.straub-nv.de!noris.net!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Fri, 19 Nov 2010 18:48:13 +0100 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Quantified Expressions: "some" References: <4ce31bb6$0$7670$9b4e6d93@newsspool1.arcor-online.net> <2d44ff4d-b3ad-4593-8492-4d16fb6b6a2e@j2g2000yqf.googlegroups.com> <1t7pvrh3i022d.8t9yqjonagar$.dlg@40tude.net> <4ce3e3c3$0$6987$9b4e6d93@newsspool4.arcor-online.net> <13vas9njbsmps.1npsunlgz5n4z$.dlg@40tude.net> <949be87b-78a2-4e7b-8b38-40f57a69eb55@d20g2000yqg.googlegroups.com> <8kknp7FkqpU1@mid.individual.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4ce6b85d$0$6879$9b4e6d93@newsspool2.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 19 Nov 2010 18:48:13 CET NNTP-Posting-Host: 9cc564b9.newsspool2.arcor-online.net X-Trace: DXC=gKJ?F:903NOE4ZB2flKORAA9EHlD;3YcB4Fo<]lROoRA8kFJLh>_cHTX3jMQ`\\bG5TFDF X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:16587 Date: 2010-11-19T18:48:13+01:00 List-Id: On 18.11.10 18:58, Peter C. Chapin wrote: > John Barnes outlines his objection to the vertical bar in a message > dated September 15, 2010. Two of his objections would also apply to ':' > as well ("too weak a symbol" and "=> is better because SPARK uses the > same symbol for the same purpose.") More fun with arrows. The AI started from the usual Such That (|) notation: (for all I in A'First .. T'Pred(A'Last) | A (I) <= A (T'Succ (I))) With "=>" replacing "|", this becomes (for all I in A'First .. T'Pred(A'Last) => A (I) <= A (T'Succ (I))) Slightly reformatted: (for all I in A'First .. T'Pred(A'Last) => A (I) <= A (T'Succ (I))) This is nothing new, just venerable pointy syntax. There has always been, for example, Boolean'Array (1 => 3 <= N). But! The expression structure seems rather more likely now, as it will appear frequently in Post aspects, one example being upper bounds on a parameter. The sequence of characters "=> X <=" is a bit odd, because on the one hand, the "arrows" are so close together, and symmetrical, but on the other hand, the readers must doubly distinguish between them to understand the program; doing so, they must be alert and (a) know that "=>" is just an arrow for associations(*), and (b) know that its very mirror, "<=" is defined at a very different linguistic level, that of relational operators. This *is* confusing (and is an opportunity for condescension of Him Who Knows Ada Well), even though this piece of obfuscation is old, if rarely used in the past. I guess, then, one Would recommend a pair of parentheses: (for all I in A'First .. T'Pred(A'Last) => (A (I) <= A (T'Succ (I)))) OK. However, by the same token, the pair could be used for "in (3 | 4)" and Such That could stay as "|". __ (*) better not to have written any Prolog recently...