;; Exercice 1 ;; 1- (defun iota (n) (labels ((aux (i l) (if (zerop i) l (aux (1- i) (cons (1- i) l))))) (aux n '()))) ;; Exercice 2 ;; 2- (defun rmap (n l fun) (unless (or (zerop n) (endp l)) (rmap (1- n) (cdr l) fun) (funcall fun (car l)))) ;; Exercice 3 ;; 3- (defun gensyms (n) (mapcar (lambda (o) (declare (ignore o)) (gensym)) (make-list n))) ;; Exercice 4 ;; 4- (defun binding (q s1 s2) (list s2 (list 'nthcdr q s1))) ;; ou (defun binding (q s1 s2) `(,s2 (nthcdr ,q ,s1))) ;; Exercice 5 ;; 5- (defun bindings (q symbols) (mapcar (lambda (s1 s2) (binding q s1 s2)) symbols (cdr symbols))) ;; Exercice 6 ;; 6- tester ;; 7- tester ;; Exercice 7 ;; 8- ;; 9- tester