-*- Mode:Text; Package:USER -*- (defun tak (x y z) (if (not (< y x)) z (tak (tak (1- x) y z) (tak (1- y) z x) (tak (1- z) x y)))) TAK: 16 PUSH ARG|1 ;Y 17 < ARG|0 ;X 18 BR-NOT-NIL 20 19 MOVE D-RETURN ARG|2 ;Z 20 CALL D-RETURN FEF|6 ;#'TAK 21 CALL D-PDL FEF|6 ;#'TAK 22 PUSH 1- ARG|0 ;X 23 PUSH ARG|1 ;Y 24 MOVE D-LAST ARG|2 ;Z 25 CALL D-PDL FEF|6 ;#'TAK 26 PUSH 1- ARG|1 ;Y 27 PUSH ARG|2 ;Z 28 MOVE D-LAST ARG|0 ;X 29 CALL D-LAST FEF|6 ;#'TAK 30 PUSH 1- ARG|2 ;Z 31 PUSH ARG|0 ;X 32 MOVE D-LAST ARG|1 ;Y (tak 18. 12. 6) (1 ENTER TAK: 18 12 6) (2 ENTER TAK: 17 12 6) (3 ENTER TAK: 16 12 6) (4 ENTER TAK: 15 12 6) (5 ENTER TAK: 14 12 6) (6 ENTER TAK: 13 12 6) (7 ENTER TAK: 12 12 6) (7 EXIT TAK: 6) (7 ENTER TAK: 11 6 13) (8 ENTER TAK: 10 6 13) (9 ENTER TAK: 9 6 13) (10 ENTER TAK: 8 6 13) (11 ENTER TAK: 7 6 13) (12 ENTER TAK: 6 6 13) (12 EXIT TAK: 13) (12 ENTER TAK: 5 13 7) (12 EXIT TAK: 7) (12 ENTER TAK: 12 7 6) (13 ENTER TAK: 11 7 6) (14 ENTER TAK: 10 7 6) (15 ENTER TAK: 9 7 6) (16 ENTER TAK: 8 7 6) (17 ENTER TAK: 7 7 6) (17 EXIT TAK: 6) (17 ENTER TAK: 6 6 8) (17 EXIT TAK: 8) (17 ENTER TAK: 5 8 7) (17 EXIT TAK: 7) (17 ENTER TAK: 6 8 7) (17 EXIT TAK: 7) (16 EXIT TAK: 7) We examine the first level 16 call to tak from its entry, through 3 function calls, and this its exit. (tak 8. 7. 6.) 16 PUSH ARG|1 ;Y <7> 17 < ARG|0 ;X <8> 18 BR-NOT-NIL 20 ... 20 CALL D-RETURN FEF|6 ;#'TAK 21 CALL D-PDL FEF|6 ;#'TAK 22 PUSH 1- ARG|0 ;X <8> 23 PUSH ARG|1 ;Y <7> 24 MOVE D-LAST ARG|2 ;Z <6> (tak 7 7 6) 16 PUSH ARG|1 ;Y <7> 17 < ARG|0 ;X <7> 18 BR-NOT-NIL 20 19 MOVE D-RETURN ARG|2 ;Z <6> ... return is to D-PDL ... 25 CALL D-PDL FEF|6 ;#'TAK 26 PUSH 1- ARG|1 ;Y <7> 27 PUSH ARG|2 ;Z <6> 28 MOVE D-LAST ARG|0 ;X <8> (tak 6 6 8) 16 PUSH ARG|1 ;Y <6> 17 < ARG|0 ;X <6> 18 BR-NOT-NIL 20 19 MOVE D-RETURN ARG|2 ;Z <8> ... return is to D-PDL ... 29 CALL D-LAST FEF|6 ;#'TAK 30 PUSH 1- ARG|2 ;Z <6> 31 PUSH ARG|0 ;X <8> 32 MOVE D-LAST ARG|1 ;Y <7> (tak 5 8 7) 16 PUSH ARG|1 ;Y <8> 17 < ARG|0 ;X <5> 18 BR-NOT-NIL 20 19 MOVE D-RETURN ARG|2 ;Z <7> ... return is to D-LAST ... (tak 6 8 7) 16 PUSH ARG|1 ;Y <8> 17 < ARG|0 ;X <6> 18 BR-NOT-NIL 20 19 MOVE D-RETURN ARG|2 ;Z <7> ... return is to D-RETURN ...