Bonjour,
Pour "problème cons" j'ai enfin trouvé grâce à la concaténétion des cons.
Je prends un retard fou dans mes cours par correspondance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ;;; corrigesimple: liste (number ) ---> liste (number) ;;; vérifier l'ordre croissant des chiffres ;;; si 2 nombres sont en ordre inverse, les permuter. Uniquement les 2 premiers (define (corrigeSimple L) (if (and (pair? L) (pair? (cdr L))) (if (< (car L) (cadr L)) (cons (car L) (corrigeSimple (cdr L))) (cons (cadr L) (cons (car L) (cddr L)))) (list (car L)))) ;; (car L) dernier de la liste ou alors mettre L car reste le dernier de la liste (trace corrigeSimple) (corrigeSimple (list 2 7 5 10 9))
J'ai encore 2 problèmes en suspens, si je prends autant de temps que le premier c'est grave.
-- A partir de la définition ci-dessus écrire une définition pour trier en ordre croissant les nombres d'une liste. C'est-à-dire qu'après (cons (cadr L) (cons (car L) (cddr L)) il faut relancer (corrigeSimple) avec la nouvelle liste Or je ne sais pas comment récupérer la nouvelle liste. J'ai essayé avec "list" mais cela ne fonctionne pas
Ceci est un exercice d'entrainement !!!
-- Par contre j'ai un exercice de devoir où je suis vraiment sec. Aucune idée pour pouvoir écrire une seule ligne de code:
Écrire une fonction qui vérifie l'égalité de deux listes en utilisant la fonctionnelle filter
Or filter a deux arguments: un argument test dont la réponse est obligatoirement booléenne et une seule liste.
Pour ce problème je ne vous demande pas la solution mais la voie à suivre car pour moi c'est le mur.
Merci d'avance pour votre patience.
Partager