Bonjour à tous
Désolé de vous déranger durant cette période de fête mais je me heurte a certains problèmes pour mon projet d'informatique... Voilà j'essaye de créer des fonctions afin de faciliter les opérations dans mes multi-ensemble. Or je rencontre un certain problème avec la fonction m_intersection qui utillise les fonctions m_appartient et m_ajoute... Je pense que mon problème vient de la définition de mon multi-ensemble vide, mais je ne vois pas comment le définir autrement...
- type 'e multi = (int*'e) list;;
- let multivide = [];;
- let rec m_appartient (a:'e)(ens:'e multi):bool=
- match ens with
- |[]-> false
- |t::q -> let (x,y)=t in
- if a=y
- then true
- else m_appartient (a)(q);;
- let rec m_ajoute (ele:'e)(ens:'e multi):'e multi=
- match ens with
- |[]->[1,ele]
- |t::q-> let x,y=t in
- if ele=y
- then ((x+1),ele)::q
- else t::m_ajoute (ele) (q);;
- let rec m_intersection (ens1:'e multi)(ens2:'e multi):'e multi =
- match ens1 with
- |[]->[]
- |t::q-> let x,y=t in
- if m_appartient (y)(ens2)
- then (m_ajoute(y)(multivide)) :: (m_intersection(m_supprime(y)(ens1))(ens2))
- else m_intersection (q)(ens2) ;;
Je précise juste que mes fonctions m_ajoute et m_appartient fonctionnent
Ensuite, mon deuxième problème est quelque peu d'un autre genre. Le but à la fin est de vérifier si mes phrases sont des contrepéteries. Pour cela, je cherche donc à décomposer mon mot de la manière suivante :
- type mot = char list;;
- type 'e ensemble= 'e list;;
- type decomposition=(mot*char*mot) ensemble;;
- let rec decompose (a:mot):decomposition=
- match a with
- |[]->[]
- |t1::t2::q->(t1,t2,q) :: ([t1]@decompose(t2::q));;
Qui doit donc me donner une liste de décomposition de mon mot, pour exemple le mot salut donnerait : ["",'s',"alut";"s",'a',"lut";"sa",'l',"ut";"sal",'u',"t";"salu",'t',""]. Je me casse la tête dessus cette fonction depuis environ 3h et je n'arrive pas à voir ou concaténer et ou insérer mes éléments. Peut-être à cause du manque de sommeil et de l'heure tardive...
Merci d'avance à vous et je vous souhaite de passer de bonnes fêtes
Partager