From: cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!uwm.edu!cs.utexas.edu
Subject: Re: Passing procedures as parameters to procedures.
Date: 4 May 93 13:45:33 GMT [thread overview]
Message-ID: <1993May4.154040@di.epfl.ch> (raw)
In article <1s5gae$kr4@huon.itd.adelaide.edu.au>, andrewd@winnie.cs.adelaide.ed
u.au (Andrew Dunstan,,2285592,) writes:
:
: As I pointed out in this group about a year ago, there are some things
: that you want to be able to do that you just can't with generics. If
: anybody can provide me with a good, clean, Ada equivalent of the
: following Pascal code, I'll send him/her (first winner only!) a good
: bottle of Australian red wine (damn this Beaujolais business!).
: [Pascal code omitted]
The solution is to make "D" visible.
package Wrap_AD is
procedure D;
generic
with procedure B;
procedure A_G;
end Wrap_AD;
package body Wrap_AD is
procedure D is begin null; end D;
procedure A_G is
begin
B;
end A_G;
end Wrap_AD;
generic
with procedure Y;
procedure X_G;
procedure X_G is
begin
Y;
end X_G;
procedure X is new X_G (Wrap_AD.D);
procedure A is new Wrap_AD.A_G (X);
...
A;
...
Two drawbacks: if D needs to access local variables of A_G, these
variables must be made global (but may be hidden in the body of
Wrap_A); the parameter B to A_G need not call D, but you may consider
it a "feature", a more powerful variant.
Good enough?
--
Magnus Kempe "No nation was ever drunk when wine was cheap."
magnus@lglsun.epfl.ch -- Thomas Jefferson
next reply other threads:[~1993-05-04 13:45 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
1993-05-04 13:45 cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!uwm.edu!cs.utexas.edu [this message]
-- strict thread matches above, loose matches on Subject: below --
1993-05-10 22:56 Passing procedures as parameters to procedures Jack Dean
1993-05-06 9:39 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!howland.reston.ans.net!darwi
1993-05-06 7:33 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!howland.reston.ans.net!torn!
1993-05-05 21:35 cis.ohio-state.edu!news.sei.cmu.edu!ajpo.sei.cmu.edu!progers
1993-05-05 17:39 Robert Dewar
1993-05-05 17:35 Robert Dewar
1993-05-05 16:30 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!us
1993-05-05 11:40 cis.ohio-state.edu!news.sei.cmu.edu!firth
1993-05-05 9:50 cis.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!howland.
1993-05-04 23:44 cis.ohio-state.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state.edu!ho
1993-05-04 22:13 John Goodsen
1993-05-04 19:39 cis.ohio-state.edu!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!m
1993-05-04 16:41 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!howland.reston.ans.net!ira.u
1993-05-04 16:25 Mark A Biggar
1993-05-04 15:43 Tucker Taft
1993-05-04 14:29 cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!uwm.edu!spool.mu.edu!
1993-05-04 13:59 Tucker Taft
1993-05-04 13:45 cis.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!howland.
1993-05-04 10:25 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!us
1993-05-03 20:36 Mark A Biggar
1993-05-03 19:07 cis.ohio-state.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state.edu!ho
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox