comp.lang.ada
 help / color / mirror / Atom feed
From: cis.ohio-state.edu!zaphod.mps.ohio-state.edu!howland.reston.ans.net!torn!
Subject: Re: Passing procedures as parameters to procedures.
Date: 6 May 93 07:33:34 GMT	[thread overview]
Message-ID: <1993May6.092204@di.epfl.ch> (raw)

In article <1s82kk$dpm@huon.itd.adelaide.edu.au>, andrewd@achilles.cs.adelaide.
edu.au (Andrew Dunstan,,2285592,) writes:
: Unfortunately, my original A is recursive, and in particular it
: is called from with D. (I realise I should have told you this!)

No problem.  Wrap A and D together in a generic package and use a
call-through for X.


generic
  with procedure B;
package Wrap_AD_G is
  procedure D;
  procedure A;
end Wrap_AD_G;

package body Wrap_AD_G is
  procedure D is
  begin
    A; -- indirect recursion is expected: A -> B -> D -> A
  end D;
  
  procedure A is
  begin
    B; -- indirect recursion expected, B expected to use D
    if ... then A; end if; -- direct recursion if you wish
  end A;
end Wrap_AD_G;

procedure X;
package Wrap_AD is new Wrap_AD_G (X);

generic
  with procedure Y;
procedure X_G;
procedure X_G is
begin
  Y;
end X_G;

procedure XD is new X_G (Wrap_AD.D);
procedure X is -- call-through
begin
  XD;
end X;

procedure A renames Wrap_AD.A;

....
A;
....

Any other changing requirements :-) ?
-- 
Magnus Kempe                "No nation was ever drunk when wine was cheap."
magnus@lglsun.epfl.ch                                   -- Thomas Jefferson

             reply	other threads:[~1993-05-06  7:33 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-05-06  7:33 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!howland.reston.ans.net!torn! [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-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 13:45 cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!uwm.edu!cs.utexas.edu
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