;;;EXERCICE 1;;;;;;;;;;;;;;;;;;;;; * 3 3 * 3.2 3.2 * 3/4 3/4 * #C(1 4) #C(1 4) * #(1 2 3 4) #(1 2 3 4) * #\a #\a * "cheval" "cheval" * nil NIL * t T ;;;EXERCICE 2;;;;;;;;;;;;;;;;;;;;;;; * (+ 3 4) 7 * (* 3.2 4.5) 14.400001 * (/ (abs -5.3) (cos 4.3)) -13.223586 * (- 3/4 4/5) -1/20 * (* #C(1 3) #(2 4)) * (* #C(1 3) #C(2 4)) #C(-10 10) ;;;EXERCICE 3;;;;;;;;;;;;;;;;;;;;;;; * (+ 1 2 3 4) 10 * (max 1 2 3 4 5 6 6) 6 * (log 4 3) 1.2618595 * (log 4) 1.3862944 ;;;EXERCICE 4;;;;;;;;;;;;;;;;;;;;;;; * (integerp 3) T * (integerp 3.1) NIL * (realp 3) T * (realp 3.1) T * (stringp "cheval") T * (complexp #C(1 2)) T * (characterp #\a) T * (typep 23.32 'real) T * (typep 23 'integer) T ;;;EXERCICE 5;;;;;;;;;;;;;;;;;;;;;;; * (defconstant truc 3) TRUC * (setf truc 2) In: SETF TRUC (SETF TRUC 2) ==> (SETQ TRUC 2) Error: Attempt to set constant TRUC. ;;;EXERCICE 6;;;;;;;;;;;;;;;;;;;;;;; (defun f (x) (+ x 3)) (defun sqr (x) (* x x)) (defun my-abs (x) (if (plusp x) x (- x))) (defun moyenne (a b) (/ (+ a b) 2.0)) ;version avec un nombre arbitraire de valeurs (defun moyenne (&rest valeurs) (/ (reduce #'+ valeurs) (length valeurs))) (defun sigma (n p) (if (> n p) 0 (+ n (sigma (+ n 1) p)))) (defun fact (n) (if (zerop n) 1 (* n (fact (- n 1))))) ;; remarque: ce n'est néammoins pas la version ;; traditionnelle, qui elle, fait usage de la boucle "do" ;; que l'on verra incessamment. (defun fib (n) (if (zerop n) 0 (if (= 1 n) 1 (+ (fib (- n 1)) (fib (- n 2)))))) ;;;EXERCICE 7;;;;;;;;;;;;;;;;;;;;;;; * (setf g 10) Warning: Declaring G special. 10 * (defun t (L) (* 2 pi (sqrt (/ L g)))) T * (t 3) 3.441442454806154d0 * (setf g 9.81) 9.81 * (t 3) 3.474609546245785d0