$ clisp <...snip...> [1]> (load "arithmetic.l") ;; Loading file arithmetic.l ... ;; Loaded file arithmetic.l T [2]> :(trace sum) :|| [3]> ;; Tracing function SUM. (SUM) [4]> :(trace product) :|| [5]> ;; Tracing function PRODUCT. (PRODUCT) [6]> (sum '()) 1. Trace: (SUM 'NIL) 1. Trace: SUM ==> 0 0 [7]> (sum '(200)) 1. Trace: (SUM '(200)) 2. Trace: (SUM 'NIL) 2. Trace: SUM ==> 0 1. Trace: SUM ==> 200 200 [8]> (sum '(2 3 5 7 11 13 17 19)) 1. Trace: (SUM '(2 3 5 7 11 13 17 19)) 2. Trace: (SUM '(3 5 7 11 13 17 19)) 3. Trace: (SUM '(5 7 11 13 17 19)) 4. Trace: (SUM '(7 11 13 17 19)) 5. Trace: (SUM '(11 13 17 19)) 6. Trace: (SUM '(13 17 19)) 7. Trace: (SUM '(17 19)) 8. Trace: (SUM '(19)) 9. Trace: (SUM 'NIL) 9. Trace: SUM ==> 0 8. Trace: SUM ==> 19 7. Trace: SUM ==> 36 6. Trace: SUM ==> 49 5. Trace: SUM ==> 60 4. Trace: SUM ==> 67 3. Trace: SUM ==> 72 2. Trace: SUM ==> 75 1. Trace: SUM ==> 77 77 [9]> (product '()) 1. Trace: (PRODUCT 'NIL) 1. Trace: PRODUCT ==> 1 1 [10]> (product '(200)) 1. Trace: (PRODUCT '(200)) 2. Trace: (PRODUCT 'NIL) 2. Trace: PRODUCT ==> 1 1. Trace: PRODUCT ==> 200 200 [11]> (product '(2 3 5 7 11 13 17 19)) 1. Trace: (PRODUCT '(2 3 5 7 11 13 17 19)) 2. Trace: (PRODUCT '(3 5 7 11 13 17 19)) 3. Trace: (PRODUCT '(5 7 11 13 17 19)) 4. Trace: (PRODUCT '(7 11 13 17 19)) 5. Trace: (PRODUCT '(11 13 17 19)) 6. Trace: (PRODUCT '(13 17 19)) 7. Trace: (PRODUCT '(17 19)) 8. Trace: (PRODUCT '(19)) 9. Trace: (PRODUCT 'NIL) 9. Trace: PRODUCT ==> 1 8. Trace: PRODUCT ==> 19 7. Trace: PRODUCT ==> 323 6. Trace: PRODUCT ==> 4199 5. Trace: PRODUCT ==> 46189 4. Trace: PRODUCT ==> 323323 3. Trace: PRODUCT ==> 1616615 2. Trace: PRODUCT ==> 4849845 1. Trace: PRODUCT ==> 9699690 9699690 [12]> (bye) Bye.