Trace avec ma fonction
1 ?- minimum([2,5,7,0,8,3,9,10], X).
T Call: (8) minimum([2, 5, 7, 0, 8, 3, 9, 10], [], _G743)
T Call: (9) minimum([5, 7, 0, 8, 3, 9, 10], 2, _G743)
T Call: (10) minimum([7, 0, 8, 3, 9, 10], 2, _G743)
T Call: (11) minimum([0, 8, 3, 9, 10], 2, _G743)
T Call: (12) minimum([8, 3, 9, 10], 0, _G743)
T Call: (13) minimum([3, 9, 10], 0, _G743)
T Call: (14) minimum([9, 10], 0, _G743)
T Call: (15) minimum([10], 0, _G743)
T Call: (16) minimum([], 0, _G743)
T Exit: (16) minimum([], 0, 0)
T Exit: (15) minimum([10], 0, 0)
T Exit: (14) minimum([9, 10], 0, 0)
T Exit: (13) minimum([3, 9, 10], 0, 0)
T Exit: (12) minimum([8, 3, 9, 10], 0, 0)
T Exit: (11) minimum([0, 8, 3, 9, 10], 2, 0)
T Exit: (10) minimum([7, 0, 8, 3, 9, 10], 2, 0)
T Exit: (9) minimum([5, 7, 0, 8, 3, 9, 10], 2, 0)
T Exit: (8) minimum([2, 5, 7, 0, 8, 3, 9, 10], [], 0)
X = 0
Yes
Trace avec ta fonction :
[debug] 2 ?- minimum1(X, [2,5,7,0,8,3,9,10]).
Call: (7) minimum1(_G579, [2, 5, 7, 0, 8, 3, 9, 10]) ? creep
Call: (8) minimum1(_L189, [5, 7, 0, 8, 3, 9, 10]) ? creep
Call: (9) minimum1(_L210, [7, 0, 8, 3, 9, 10]) ? creep
Call: (10) minimum1(_L231, [0, 8, 3, 9, 10]) ? creep
Call: (11) minimum1(_L252, [8, 3, 9, 10]) ? creep
Call: (12) minimum1(_L273, [3, 9, 10]) ? creep
Call: (13) minimum1(_L294, [9, 10]) ? creep
Call: (14) minimum1(_L315, [10]) ? creep
Exit: (14) minimum1(10, [10]) ? creep
Call: (14) minimum1(9, 10, _L316) ? creep
^ Call: (15) 9=<10 ? creep
^ Exit: (15) 9=<10 ? creep
Exit: (14) minimum1(9, 10, 9) ? creep
^ Call: (14) _L294 is 9 ? creep
^ Exit: (14) 9 is 9 ? creep
Exit: (13) minimum1(9, [9, 10]) ? creep
Call: (13) minimum1(3, 9, _L295) ? creep
^ Call: (14) 3=<9 ? creep
^ Exit: (14) 3=<9 ? creep
Exit: (13) minimum1(3, 9, 3) ? creep
^ Call: (13) _L273 is 3 ? creep
^ Exit: (13) 3 is 3 ? creep
Exit: (12) minimum1(3, [3, 9, 10]) ? creep
Call: (12) minimum1(8, 3, _L274) ? creep
^ Call: (13) 8=<3 ? creep
^ Fail: (13) 8=<3 ? creep
Redo: (12) minimum1(8, 3, _L274) ? creep
^ Call: (13) 3=<8 ? creep
^ Exit: (13) 3=<8 ? creep
Exit: (12) minimum1(8, 3, 3) ? creep
^ Call: (12) _L252 is 3 ? creep
^ Exit: (12) 3 is 3 ? creep
Exit: (11) minimum1(3, [8, 3, 9, 10]) ? creep
Call: (11) minimum1(0, 3, _L253) ? creep
^ Call: (12) 0=<3 ? creep
^ Exit: (12) 0=<3 ? creep
Exit: (11) minimum1(0, 3, 0) ? creep
^ Call: (11) _L231 is 0 ? creep
^ Exit: (11) 0 is 0 ? creep
Exit: (10) minimum1(0, [0, 8, 3, 9, 10]) ? creep
Call: (10) minimum1(7, 0, _L232) ? creep
^ Call: (11) 7=<0 ? creep
^ Fail: (11) 7=<0 ? creep
Redo: (10) minimum1(7, 0, _L232) ? creep
^ Call: (11) 0=<7 ? creep
^ Exit: (11) 0=<7 ? creep
Exit: (10) minimum1(7, 0, 0) ? creep
^ Call: (10) _L210 is 0 ? creep
^ Exit: (10) 0 is 0 ? creep
Exit: (9) minimum1(0, [7, 0, 8, 3, 9, 10]) ? creep
Call: (9) minimum1(5, 0, _L211) ? creep
^ Call: (10) 5=<0 ? creep
^ Fail: (10) 5=<0 ? creep
Redo: (9) minimum1(5, 0, _L211) ? creep
^ Call: (10) 0=<5 ? creep
^ Exit: (10) 0=<5 ? creep
Exit: (9) minimum1(5, 0, 0) ? creep
^ Call: (9) _L189 is 0 ? creep
^ Exit: (9) 0 is 0 ? creep
Exit: (8) minimum1(0, [5, 7, 0, 8, 3, 9, 10]) ? creep
Call: (8) minimum1(2, 0, _L190) ? creep
^ Call: (9) 2=<0 ? creep
^ Fail: (9) 2=<0 ? creep
Redo: (8) minimum1(2, 0, _L190) ? creep
^ Call: (9) 0=<2 ? creep
^ Exit: (9) 0=<2 ? creep
Exit: (8) minimum1(2, 0, 0) ? creep
^ Call: (8) _G579 is 0 ? creep
^ Exit: (8) 0 is 0 ? creep
Exit: (7) minimum1(0, [2, 5, 7, 0, 8, 3, 9, 10]) ? creep
X = 0
Yes
Partager