(DEFINE (PLUS-GRAND X Y)
(IF (> X Y) X Y))
(DEFINE (MAXIMUM L)
(COND ((NULL? L) ())
((NULL? (CDR L)) (CAR L)) ;TEST D'ARRET
(ELSE (PLUS-GRAND (CAR L)
(MAXIMUM (CDR L))))))
--> LA FONCTION MAXIMUM DEVIENT UNE FONCTION BEAUCOUP PLUS GÉNÉRALE:
(SUPER-MAX LISTE OP)
(DEFINE (SUPER-MAX L OP)
(COND ((NULL? L) ())
((NULL? (CDR L)) (CAR L))
(ELSE ( (CAR L)
(SUPER-MAX (CDR L) OP)))))
(SUPER-MAX '(1 2 3 4) PLUS-GRAND)
--> 4 = MAX
(SUPER-MAX '(1 2 3 4) +)
--> 10 = 1+2+3+4
(SUPER-MAX '(1 2 3 4) *)
--> 24 = 4!
(ACCUMULER LISTE OP)