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=unavailable 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: "J-P. Rosen" Newsgroups: comp.lang.ada Subject: Re: Generators/coroutines in future Ada? Date: Tue, 11 Jul 2017 15:26:49 +0200 Organization: A noiseless patient Spider Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 11 Jul 2017 13:22:59 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="83d22265d39091c2ac74272df395981d"; logging-data="930"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/udurLQ0I01FyiO68h1yX4" User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 In-Reply-To: Content-Language: fr Cancel-Lock: sha1:piyrIig8XmEAEWCyuJkEGUz1jZg= Xref: news.eternal-september.org comp.lang.ada:47355 Date: 2017-07-11T15:26:49+02:00 List-Id: Le 11/07/2017 à 15:01, Victor Porton a écrit : > I've realized how to imitate closures with generics. > > But is there is a way to add generators to Ada? AFAIU, generators are functions with states, where the returned value at one call depends on the state that was left behind by the previous call. This can easily be achieved with a function within a package, where the package serves to protect and hide the function's state. Alternatively, you can mimic the behaviour with a task that has several accept for the same entry, where you could describe the hidden state as the execution position of the task. But once again, please provide an example where you find generators convenient, and we can discuss the best solution in Ada (I know other people in this group who would be interested too ;-) ) -- J-P. Rosen Adalog 2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00 http://www.adalog.fr