Besoin d'aide - Langages fonctionnels - Programmation
Marsh Posté le 27-05-2009 à 13:54:00
je suis tete en l'air et j'ai oublié de preciser que c'est en scheme
Marsh Posté le 27-05-2009 à 13:54:43
Commences par trier ta liste, puis retire les doublons
Marsh Posté le 27-05-2009 à 13:58:49
ah c'est ce que j'etais justement en train de faire je vais continuer voir si j'y arrive
Marsh Posté le 27-05-2009 à 14:17:09
j'ai esssayé ça pour supprimer mes doublons d'une liste déja triée , mais ça ne marche pas, qu'est ce qui ne va pas ?
(define CreerEnsemble
(lambda (l)
(if (null? (cdr l))
l
(if (= (car l)(car (CreerEnsemble (cdr l))))
(CreerEnsemble (cdr l))
(cons (car l)(car(CreerEnsemble (cdr l))))))))
Marsh Posté le 27-05-2009 à 14:29:38
je tiens a preciser aussi que je n'ai eu aucun veritable cours en scheme, seulement des documents envoyés par notre prof greviste ... donc ça explique pourquoi je galere autant et que je n'ai pour seule solution de demander de l'aide sur votre forum
Marsh Posté le 27-05-2009 à 21:34:26
lisee26 a écrit : j'ai esssayé ça pour supprimer mes doublons d'une liste déja triée , mais ça ne marche pas, qu'est ce qui ne va pas ? |
Je ne sais pas ce qui ne va pas sans ton code mais tu appelles 3 fois (CreerEnsemble (cdr l)) ça me semble 2 fois de trop.
Pour supprimer les doublons dans une liste triéée, une possibilité serait de faire appel à une fonction intermédiaire à 2 arguments, l'element en cours de test possède-t-il des doublons où non) , et la liste restant à purger.
Marsh Posté le 28-05-2009 à 11:06:16
ReplyMarsh Posté le 28-05-2009 à 13:12:14
lisee26 a écrit : désolée je ne comprends ^pas ton idée ... :s |
je pense à quelque chose comme çà
Code :
|
La fonction purge compare elem avec le premier de la liste
3 cas possibles
- la liste est vide, à toi de voir ce que tu dois faire en considérant la manière d'appeler cette fonction (purge (car l) l)
- le premier élément de la liste est egal à elem que dois-je renvoyer ?
- le premier élément de la liste est différent de elem que dois-je renvoyer (toujours en considérant la manière d'appeler purge)
A toi de voir quand il faut renvoyer elem dans la liste résultat.
Marsh Posté le 27-05-2009 à 13:52:32
Bonjour,
J'aurais besoin d'une piste pour faire mon exos, depuis une heure je tourne en rond et je n'arrive pas a trouver !
Mon exercice consiste a partir d'une liste supprimer les doublons et la trier par exemple si j'ai comme liste '(3 2 1 2 4 4) j'ai pour resultat : '(1 2 3 4)
J'ai essayer d'utiliser member, equal et le minimum .. mais j'ai l'impression de n'arriver a rien avec tout ça, donc j'aurais juste besoin d'un coup de pouce !
merci