(********* Exercice 1 *********) (********* Exercice 2 *********) (time (fibo 32)) (time (fibo-gen 32 1 1)) (time (fibo-gen 1000 1 1)) (********* Exercice 3 *********) (let ([x 5] [y (sqrt 9)] [z (* 4 (+ 3 (sqrt 4) (sqrt 9)))]) (+ x y (* 5 z))) (+ (let ([a 12]) (+ a a)) (let ([b 30]) (+ b (let ([b 20]) (+ b b))))) (define x 12) (define y 5) (define q1 (let ([x y] [y x]) (- x y))) (define q2 (let* ([x y] [y x]) (- x y))) (********* Exercice 4 *********) (define a 0) (new-if (zero? a) true false) (new-if (zero? a) (print "a est nul") (print "a est non nul")) (********* Exercice 5 *********) (define a 20) (and (print 1) (= a 20) (print 2) (print 3)) (and (print 1) (= a 30) (print 2) (print 3)) (or (print 1) (= a 20) (print 2) (print 3)) (or (= a 30) (= a 50) (print 1) (print 2)) (********* Exercice 6 *********) (substrings "abbbababbabbbabab" (lambda (x) (equal? x "ab"))) ;; -> 6 (equal to "ab") (substrings "abbbababbabbbabab" (lambda (x) (string-contains? x "bb"))) ;; -> 112 (containing "bb")