Effectivement Falsam, les variable sont bien locale à chaque appel.
J'ai résolut mon problème, merci à vous

Assez d'accord avec G-Rom tous cela dépend de ce que l'on souhaiteG-Rom a écrit : Bonjour falsam, non, le principe de la récursion est de justement jouer avec des variables propre à chaque procédure...
ce petit morceau de code démontre mes dires :
Code : Tout sélectionner
Procedure recurs(*v)
If PeekI(*v) < 100
PokeI(*v,PeekI(*v)+1)
Debug PeekI(*v)
recurs(*v)
EndIf
EndProcedure
Global myVal.i = 0
recurs(@myVal)
Debug "Final result : "+Str(myVal)
J'avais fais une réponse moqueuse suite au commentaire de shadowshadow a écrit : ....j’obtiens une infinité de variable 'A' mais locale à chaque récursivité c'est bien ça ?
Code : Tout sélectionner
Procedure MaProcedure()
A + 1 ; A (01) ici vaudra 1, 2
Delay(100)
If A < 3
MaProcedure()
EndIf
EndProcedure
La boucle est infinie certes ..... mais bloquante surtout car A aura toujours la valeur 1.shadow a écrit :En procèdent comme ceci, effectivement il y à boucle infinie...
Ce qui m’intéresse de savoir, est ce que chaque variable est bien indépendante ?
Code : Tout sélectionner
OpenWindow(0,0,0,1024,768,"")
CanvasGadget(0,0,0,1024,768)
Procedure.b equals(A.d,B.d)
ProcedureReturn Bool( Abs(B-A) < 0.01 )
EndProcedure
Procedure DrawLineRecursive(x1.d,y1.d,x2.d,y2.d)
If equals(x1,x2) And equals(y1,y2)
ProcedureReturn 0
EndIf
midx.d = (x2 + x1) / 2
midy.d = (y2 + y1) / 2
DrawLineRecursive(x1,y1,midx,midy)
DrawLineRecursive(midx+0.001,midy+0.001,x2,y2)
Plot(midx,midy,0)
ProcedureReturn 0
EndProcedure
StartDrawing(CanvasOutput(0))
DrawLineRecursive(10,10,1014,758)
StopDrawing()
While #True
Repeat
event = WindowEvent()
If event = #PB_Event_CloseWindow
Break 2
EndIf
Until event = 0
Wend