4 (define (Puissance1 P N)
8 ((< N 0) (div 1 (Puissance1 P (- N))))
9 ((* P (Puissance1 P (- N 1))))))
10 (println "Puissance1")
11 (println (Puissance1 5 5))
12 (println (Puissance1 2 12))
17 (define (Puissance2 P N)
23 ((= (mod N 2) 0) (Puissance2 (Puissance2 P 2) (/ N 2)))
24 ((* P (Puissance2 (Puissance2 P 2) (/ (- N 1) 2))))))))
25 (println "Puissance2")
26 (println (Puissance2 5 5))
27 (println (Puissance2 2 12))
31 ; https://fr.wikipedia.org/wiki/Algorithme_d%27Euclide
45 ; https://fr.wikipedia.org/wiki/Coefficient_binomial
46 ; relation de pascal commenté
51 ;((+ (comb (- N 1) P) (comb (- N 1) (- P 1))))))
52 ((/ (* N (comb (- N 1) (- P 1))) P))))
56 (println "(comb 12 8) = "(comb 12 8))
61 (setq L '(3 7 + 4 2 + *))
62 (setq M '(4 3 7 + * 2 -))
63 (setq N '(10 10 5 / +))
64 (define (calculExp P L)
67 ((= (first L) '+) (calculExp (cons (+ (first P) (P 1)) (rest (rest P))) (rest L)))
68 ((= (first L) '-) (calculExp (cons (- (P 1) (first P)) (rest (rest P))) (rest L)))
69 ((= (first L) '*) (calculExp (cons (* (first P) (P 1)) (rest (rest P))) (rest L)))
70 ;FIXME: test for divide by zero
71 ((= (first L) '/) (calculExp (cons (/ (P 1) (first P)) (rest (rest P))) (rest L)))
72 ((calculExp (cons (first L) P) (rest L)))))
74 (println (calculExp '() L))
76 (println (calculExp '() M))
77 (println (calculExp '() N))
81 (setq Q '(+ (* x 0) (* 10 (+ y 0))))
82 (define (algsimplificator L)
85 ((= (first L) ) (rest L))
88 (println "algsimplificator")
89 ;(println algsimplificator(Q))
95 ((> N 1) (+ (fibonacci (- N 1)) (fibonacci (- N 2))))))
97 ;(println (fibonacci 21))
98 ;(println (fibonacci 14))
99 (println (fibonacci 20))
100 (println (time (fibonacci 20)))
104 (define (fibo:fibo n)
105 (if (not fibo:mem) (set 'fibo:mem '(0 1)))
107 (push (+ (fibo:mem -1) (fibo:mem -2)) fibo:mem -1))
111 (println (time (fibo 20)))