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!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Generators/coroutines in future Ada? Date: Tue, 11 Jul 2017 18:59:00 +0200 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: MajGvm9MbNtGBKE7r8NgYA.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Language: en-US Xref: news.eternal-september.org comp.lang.ada:47358 Date: 2017-07-11T18:59:00+02:00 List-Id: On 2017-07-11 15:26, J-P. Rosen wrote: > 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. Which is an incredibly bad idea for sure. > 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 ;-) ) (:-)) I remember a few cases when this results in a disaster. Even innocent cases like saving the last found item of a search do. Or when Ada.Text_IO.Put_Line with no file is used for anything except debugging. How big are chances to discover much later that you need to change the output file? There must be no hidden state, almost never. The state must be packed into an object which must be an explicit parameter. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de