$ clisp <...snip...> [1]> (load "reduce-to-set.l") ;; Loading file reduce-to-set.l ... ;; Loaded file reduce-to-set.l T [2]> :(trace reduce-to-set) :|| [3]> ;; Tracing function REDUCE-TO-SET. (REDUCE-TO-SET) [4]> (reduce-to-set '()) 1. Trace: (REDUCE-TO-SET 'NIL) 1. Trace: REDUCE-TO-SET ==> NIL NIL [5]> (reduce-to-set '(1 2)) 1. Trace: (REDUCE-TO-SET '(1 2)) 2. Trace: (REDUCE-TO-SET '(2)) 3. Trace: (REDUCE-TO-SET 'NIL) 3. Trace: REDUCE-TO-SET ==> NIL 2. Trace: REDUCE-TO-SET ==> (2) 1. Trace: REDUCE-TO-SET ==> (1 2) (1 2) [6]> (reduce-to-set '(1 2 3 2 1)) 1. Trace: (REDUCE-TO-SET '(1 2 3 2 1)) 2. Trace: (REDUCE-TO-SET '(2 3 2 1)) 3. Trace: (REDUCE-TO-SET '(3 2 1)) 4. Trace: (REDUCE-TO-SET '(2 1)) 5. Trace: (REDUCE-TO-SET '(1)) 6. Trace: (REDUCE-TO-SET 'NIL) 6. Trace: REDUCE-TO-SET ==> NIL 5. Trace: REDUCE-TO-SET ==> (1) 4. Trace: REDUCE-TO-SET ==> (2 1) 3. Trace: REDUCE-TO-SET ==> (3 2 1) 2. Trace: REDUCE-TO-SET ==> (3 2 1) 1. Trace: REDUCE-TO-SET ==> (3 2 1) (3 2 1) [7]> (reduce-to-set '(a a b a b c a b c d)) 1. Trace: (REDUCE-TO-SET '(A A B A B C A B C D)) 2. Trace: (REDUCE-TO-SET '(A B A B C A B C D)) 3. Trace: (REDUCE-TO-SET '(B A B C A B C D)) 4. Trace: (REDUCE-TO-SET '(A B C A B C D)) 5. Trace: (REDUCE-TO-SET '(B C A B C D)) 6. Trace: (REDUCE-TO-SET '(C A B C D)) 7. Trace: (REDUCE-TO-SET '(A B C D)) 8. Trace: (REDUCE-TO-SET '(B C D)) 9. Trace: (REDUCE-TO-SET '(C D)) 10. Trace: (REDUCE-TO-SET '(D)) 11. Trace: (REDUCE-TO-SET 'NIL) 11. Trace: REDUCE-TO-SET ==> NIL 10. Trace: REDUCE-TO-SET ==> (D) 9. Trace: REDUCE-TO-SET ==> (C D) 8. Trace: REDUCE-TO-SET ==> (B C D) 7. Trace: REDUCE-TO-SET ==> (A B C D) 6. Trace: REDUCE-TO-SET ==> (A B C D) 5. Trace: REDUCE-TO-SET ==> (A B C D) 4. Trace: REDUCE-TO-SET ==> (A B C D) 3. Trace: REDUCE-TO-SET ==> (A B C D) 2. Trace: REDUCE-TO-SET ==> (A B C D) 1. Trace: REDUCE-TO-SET ==> (A B C D) (A B C D) [8]> (bye) Bye.