Re: Reentrant Functions
- To: mathgroup at smc.vnet.net
- Subject: [mg29464] Re: [mg29424] Reentrant Functions
- From: Adalbert Hanssen <hanssen at zeiss.de>
- Date: Wed, 20 Jun 2001 04:36:47 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
>Hello,
>can functions be made reentrant, i.e. can I invoke in a function the
>same function again?
>Hermann Schmitt
yes: consider e.g.
Ggt[a_,b_]:=If[a>b,Ggt[a-b,b],If[b>a,Ggt[b-a,a],a]]
Trace[Ggt[100,80],Ggt] yields:
{Ggt[100, 80],
If[100 > 80, Ggt[100 - 80, 80], If[80 > 100, Ggt[80 - 100, 100], 100]],
Ggt[100 - 80, 80], Ggt[20, 80],
If[20 > 80, Ggt[20 - 80, 80], If[80 > 20, Ggt[80 - 20, 20], 20]],
Ggt[80 - 20, 20], Ggt[60, 20],
If[60 > 20, Ggt[60 - 20, 20], If[20 > 60, Ggt[20 - 60, 60], 60]],
Ggt[60 - 20, 20], Ggt[40, 20],
If[40 > 20, Ggt[40 - 20, 20], If[20 > 40, Ggt[20 - 40, 40], 40]],
Ggt[40 - 20, 20], Ggt[20, 20],
If[20 > 20, Ggt[20 - 20, 20], If[20 > 20, Ggt[20 - 20, 20], 20]]}
regards
Adalbert Hanszen