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,de7dd126d6737f3a X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Path: g2news1.google.com!news4.google.com!feeder.news-service.com!85.214.198.2.MISMATCH!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: "Alex Mentis" Newsgroups: comp.lang.ada Subject: Re: Callback in Ada Date: Tue, 4 Jan 2011 18:33:53 +0000 (UTC) Organization: A noiseless patient Spider Message-ID: References: <8lc2d0Fb6jU1@mid.individual.net> <4cf0ec67$0$6882$9b4e6d93@newsspool2.arcor-online.net> <393221c0-ac56-436f-b3f8-280c40d5a53a@j1g2000vbl.googlegroups.com> <10p6vzd761rdz$.1gtmc0fk6t9rb.dlg@40tude.net> <704b1c18-9d58-420f-b7af-205ccd1ca7ad@g26g2000vbz.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 4 Jan 2011 18:33:53 +0000 (UTC) Injection-Info: mx01.eternal-september.org; posting-host="LuNBe46aq3RH8fhR+DTFSg"; logging-data="27146"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19sejOJ4Pv4lTLZ7ea8GzaoJw/rHntJE60=" User-Agent: XanaNews/1.19.1.269 Cancel-Lock: sha1:MRtQ4YIKUutnmiO32gMabZZJnAI= Xref: g2news1.google.com comp.lang.ada:16321 Date: 2011-01-04T18:33:53+00:00 List-Id: Randy Brukardt wrote: > "Robert A Duff" wrote in message > news:wcck4inqpij.fsf@shell01.TheWorld.com... >"Alex Mentis" > writes: > > > > > I was not able to get a short test program using the code above to > > > compile using GNAT GPL 2010 from AdaCore, even when using the Ada > > > 2012 switches (-gnat12 and -gnat2012) and pragma (pragma > > > Ada_2012). The error I get makes it appear that the parser is > > > looking for a "begin" for function Foobar. > > > > > > Using the following worked, though: > > > > > > function Foobar (A : Integer) return Integer is > > > begin > >> return (if A > 10 then A - 5 else A); > > > end Foobar; > > > > > > What am I missing? > > > > I don't remember when these features were implemented. > > Apparently, the GPL 2010 has 'if' expressions, > > but expression functions are more recent. > > That would make sense; I didn't actually write the wording for this > proposal until mid-October (this was my AI). That was then approved > at the late October ARG meeting. There are an outline of the feature > before that, but no details; it would have been tough to implement it > usefully without those details. > > Randy. Since it�s the topic of discussion, and since you wrote the proposal, is it true that expression functions (which, in effect, appear to be function specifications that include small expressions as the function bodies), when supported, could appear in a package specification, rather than in the body, or did I miss-read the information I saw online? In other words, from what I read, it looks like once this is supported one could have a function Foobar in an .ads file that looks like function Foobar (A : Integer) return Integer is (if A > 10 then A - 5 else A); and not need a corresponding function in the .adb file. -Alex