Le compte est bon
Voici le programme (emprunté à Jacques Chazarain) pour le calcul du jeu « le compte est bon ». Soit n le nombre dont le joueur doit s’approcher le plus possible, et L la liste des nombres tirés au hasard, triés en ordre croissant. La règle du jeu est simplifiée : le programme n’admet que l’addition pour combiner les nombres, et seules les solutions exactes sont retenues.
(define (compte-bon n L)
(cond
((null? L)
(if (zero? n)
L
#f))
((= n (car L))
(list (car L)))
((< n (car L))
#f)
(else
(let ((solution
(compte-bon
(- n (car L))
(cdr L))))
(if solution
(cons (car L) solution)
(compte-bon n (cdr L)))))))Pour avoir une version compilée il faut ajouter en tête du fichier :
(module compte-bon
(main entre))
(define (entre args)
(display "Entre un nombre : ")
(let ((n (read)))
(display "Entre une liste de nombres")
(display " en ordre croissant : ")
(let ((L (read)))
(print (compte-bon n L)))))