Curisoité: la réentrance des procédures Paradox

Une caractéristique des procédures Objectpal est leur réentrance c'est-à-dire qu'une procédure peut s'appeler elle-même. Le code suivant vous fournit un exemple pour le calcul des factorielles.

Bien sûr, si on désire exploiter cette caractéristique, il convient de s'assurer qu'une sortie de la procédure est bien prévue quelles que soient les valeurs fournies, sinon vous devrez probablement interrompre votre programme brutalement, à moins qu'un débordement de pile ne le fasse à votre place.

 

A noter que les variables locales à la procédure sont réinitialisées à chaque exécution.

Proc Facto(nu number) Number
if nu = 0 then
   return 1
else
 return nu * Facto(nu - 1)
endif
endproc

method run(var eventInfo Event)
msginfo("Factorielle 10",Facto(10))
endMethod