(defun iota (x) (cond ((= x 0) () ) (T (snoc x (iota (- x 1))) ) ) ) Demo: Break 1 [19]> (iota 1) 2. Trace: (IOTA '1) 3. Trace: (IOTA '0) 3. Trace: IOTA ==> NIL 2. Trace: IOTA ==> (1) (1) Break 1 [19]> (iota 10) 2. Trace: (IOTA '10) 3. Trace: (IOTA '9) 4. Trace: (IOTA '8) 5. Trace: (IOTA '7) 6. Trace: (IOTA '6) 7. Trace: (IOTA '5) 8. Trace: (IOTA '4) 9. Trace: (IOTA '3) 10. Trace: (IOTA '2) 11. Trace: (IOTA '1) 12. Trace: (IOTA '0) 12. Trace: IOTA ==> NIL 11. Trace: IOTA ==> (1) 10. Trace: IOTA ==> (1 2) 9. Trace: IOTA ==> (1 2 3) 8. Trace: IOTA ==> (1 2 3 4) 7. Trace: IOTA ==> (1 2 3 4 5) 6. Trace: IOTA ==> (1 2 3 4 5 6) 5. Trace: IOTA ==> (1 2 3 4 5 6 7) 4. Trace: IOTA ==> (1 2 3 4 5 6 7 8) 3. Trace: IOTA ==> (1 2 3 4 5 6 7 8 9) 2. Trace: IOTA ==> (1 2 3 4 5 6 7 8 9 10) (1 2 3 4 5 6 7 8 9 10) (defun generate (n lo) (cond ((= n 0) () ) (T (cons lo (generate (- n 1) lo)) ) ) ) Demo: [21]> (generate 3 'peach) 1. Trace: (GENERATE '3 'PEACH) 2. Trace: (GENERATE '2 'PEACH) 3. Trace: (GENERATE '1 'PEACH) 4. Trace: (GENERATE '0 'PEACH) 4. Trace: GENERATE ==> NIL 3. Trace: GENERATE ==> (PEACH) 2. Trace: GENERATE ==> (PEACH PEACH) 1. Trace: GENERATE ==> (PEACH PEACH PEACH) (PEACH PEACH PEACH) [22]> (generate 9 '9) 1. Trace: (GENERATE '9 '9) 2. Trace: (GENERATE '8 '9) 3. Trace: (GENERATE '7 '9) 4. Trace: (GENERATE '6 '9) 5. Trace: (GENERATE '5 '9) 6. Trace: (GENERATE '4 '9) 7. Trace: (GENERATE '3 '9) 8. Trace: (GENERATE '2 '9) 9. Trace: (GENERATE '1 '9) 10. Trace: (GENERATE '0 '9) 10. Trace: GENERATE ==> NIL 9. Trace: GENERATE ==> (9) 8. Trace: GENERATE ==> (9 9) 7. Trace: GENERATE ==> (9 9 9) 6. Trace: GENERATE ==> (9 9 9 9) 5. Trace: GENERATE ==> (9 9 9 9 9) 4. Trace: GENERATE ==> (9 9 9 9 9 9) 3. Trace: GENERATE ==> (9 9 9 9 9 9 9) 2. Trace: GENERATE ==> (9 9 9 9 9 9 9 9) 1. Trace: GENERATE ==> (9 9 9 9 9 9 9 9 9) (9 9 9 9 9 9 9 9 9)