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 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "G.B." Newsgroups: comp.lang.ada Subject: Re: Why doesn't Ada allow user-defined attributes? Date: Sat, 22 Jul 2017 18:33:22 +0200 Organization: A noiseless patient Spider Message-ID: References: Reply-To: nonlegitur@notmyhomepage.de Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sat, 22 Jul 2017 16:29:23 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="a1d683ed4129d22e907fcd8c73f7de68"; logging-data="24625"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ZyRldVlJeK78fXMPmfoUmJ1LLY3e6Yr4=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 In-Reply-To: Cancel-Lock: sha1:hL1dg/zmVjGhshxhnmerw7EURiE= Xref: news.eternal-september.org comp.lang.ada:47494 Date: 2017-07-22T18:33:22+02:00 List-Id: On 21.07.17 21:39, Dmitry A. Kazakov wrote: > On 2017-07-21 19:11, Georg Bauhaus wrote: >> Dmitry A. Kazakov wrote: >>> On 21/07/2017 06:46, Georg Bauhaus wrote: >>> >>>> Do you really need 'Length? >>> >>> Sure, when for example the result depends on the number of elements. >> >> Count is computed easily, albeit inefficiently, or even efficiently >> whenever a collection type caches its number of elements. >> So, is 'Length, if not a static property, more than a prim op? >> >>> 'Length is a general property of any container (set). >>> >>>> It seems an implementation detail whenever the language doesn't have forall >>>> or exists. >>> >>> Enumeration requires some additional assumptions, stronger than length. >> >> What real thing can be counted yet not one by one? > > Unordered set cannot be enumerated, https://en.wikipedia.org/wiki/Enumeration > Lots of external things cannot be, e.g. a file you have no permission to read. A file needs to have been _counted_ byte by byte, or allocated using a known _count_ of bytes, etc. in order to have this length. Permissions don't change this state of affairs.