Page 1 sur 1

Pattern Matching, Option Info MP

Publié : 09 janv. 2021 16:09
par IntegrationX
Bonjour

1) je me demandais si on pouvait utiliser le pattern mathing avec des mots

ex match match m with
m.[0]^m'->....

ou s'il faut passer par la programmation dynamique.

2) Est-il autorisé aux concours de changer le type de structure de données ex : arbre - > liste
mot -> liste afin d'utiliser le pattern matching bien qu'on perde en complexité ?

3) Dès que l'on connait parfaitement son cours + exos classiques + algos classiques , vaut mieux t'il approfondir sa connaissance avec des algos plus poussés ou bourriner massivement les sujets pour gagner en fluidité/ rapidité et apprendre à coder des algos compliqués ?


Bonne journée

Re: Pattern Matching, Option Info MP

Publié : 10 janv. 2021 12:37
par H2Fooko
Bonjour IntegrationX,
Juste pour essayer de comprendre afin d'essayer de t'aider:
Qu'appelles tu le pattern matching ?
Est ce l'utilisation de regexp ?

Re: Pattern Matching, Option Info MP

Publié : 10 janv. 2021 16:19
par IntegrationX
C'est l'utilisation de la fonction match quelques chose with qui ne se fait que sur les objets définis inductivement

Re: Pattern Matching, Option Info MP

Publié : 10 janv. 2021 17:25
par Inversion
Bonjour,

Voici mon avis à certaines de tes questions, je te réponds en attendant qu'une autre personne plus compétente le fasse (si une d'entre elles a le temps).
1) je me demandais si on pouvait utiliser le pattern mathing avec des mots

ex match match m with
m.[0]^m'->....
Si j'ai bien compris ta question, tu veux faire du filtrage par motif avec les chaînes de caractères comme on le fait avec des listes par exemple. Je ne crois pas que ce soit vraiment possible : les chaînes de caractères sont en OCaml des structures impératives, au même titre que les tableaux, et non itératives.
ou s'il faut passer par la programmation dynamique.
Je n'ai pas compris cette phrase.
2) Est-il autorisé aux concours de changer le type de structure de données ex : arbre - > liste
mot -> liste afin d'utiliser le pattern matching bien qu'on perde en complexité ?
Je n'ai pas compris cette question.
3) Dès que l'on connait parfaitement son cours + exos classiques + algos classiques , vaut mieux t'il approfondir sa connaissance avec des algos plus poussés ou bourriner massivement les sujets pour gagner en fluidité/ rapidité et apprendre à coder des algos compliqués ?
Si tu vises uniquement l'X comme ton pseudonyme le laisse penser, je pense que tu pourras acquérir toute la culture nécessaire pour briller à l'écrit en faisant des annales. Tu devrais néanmoins demander conseil à ton professeur d'informatique, qui saura sans doute te répondre bien plus précisément. Si tu es candidat libre, je ne sais pas quoi dire.

Bon courage.

Re: Pattern Matching, Option Info MP

Publié : 11 janv. 2021 18:39
par YS1
1) Un motif (pattern) dans une expression de filtrage (matching) ne peut faire intervenir que des constructeurs et des variables (fraiches). On peut donc filtrer des chaines mais seulement avec des motifs très restreints, parce que le ^ est une fonction et non un constructeur :

Code : Tout sélectionner

match str with
  | "essai" -> 0
  | "truc" ->   1
  |  x ->  2  (* toutes les autres chaines *)
C'est d'ailleurs la même chose pour les entiers par exemple : on peut filtrer selon les constantes 0, 12, etc.

Ça n'a pas vraiment de rapport avec la mutabilité (et dans les versions récentes de OCaml, les chaines sont immuables) mais avec le caractère construit ou pas, ce qui est légèrement différent.

Je ne vois pas bien non plus le rapport avec la programmation dynamique.

2) A priori non ; passer d'une liste à un tableau par exemple peut être vu comme un contournement de l'exercice (par exemple on cherche à vous évaluer sur votre capacité à manipuler des listes et vous ne le faites pas). Ça doit aussi être pénible à corriger si chacun tord l'exercice n'importe comment.

Sauf au TP des ENS bien sûr, puisqu'alors on vous donne seulement un problème à résoudre et c'est vous qui choisissez les structures informatiques pour ce faire (le mot liste, s'il apparait dans le sujet, est alors à prendre dans le sens intuitif).

3) Je souscris à la réponse précédente.

Re: Pattern Matching, Option Info MP

Publié : 17 janv. 2021 09:52
par IntegrationX
Merci beaucoup pour ces réponses très claires !