Questions / réponses

problem de type

problem de type

de către Tristan Knight-
Număr de răspunsuri: 4

bonjour


voici plusieurs heures que je travail sur paramètre general. je sais que mes fonctions (surtout la dernière) ne sont peutetre pas correct mais leurs type me semble bon

val p : 'a -> bool = <fun>

val btree_size_predi : ('a -> bool) -> 'a tree -> int = <fun>
val num_leaves_predi : ('a -> bool) -> 'a tree -> int = <fun>
val arity_counter1_predi : ('a -> bool) -> 'a tree -> int = <fun>
val arity_counter2_predi : ('a -> bool) -> 'a tree -> int = <fun>
val branche_height_predi_1 : ('a -> bool) -> 'a tree -> int = <fun>
val branche_height_predi_all : ('a -> bool) -> 'a tree -> int = <fun>

cependant la fonction

let parameters_gen p t =

affiche un type

val parameters_gen :
  ('a -> 'b -> bool) ->
  'a ->
  ('b tree -> int) * ('b tree -> int) * ('b tree -> int) * ('b tree -> int) *
  ('b tree -> int) * ('b tree -> int) = <fun>

quand je test sur moodle voici le message indiquer

Erreur de type ou fonction inexistante!

--------------------------------
Error: This expression has type bool but an expression was expected of type
'a -> bool
--------------------------------
0/100

cependant je n'ai aucune idée de ou l'erreur surgit.

Cordialement,
Tristan Knight

Ca răspuns la Tristan Knight

Re: problem de type

de către Chloe Neuville-

Bonsoir,

j'ai réussi à faire parameters_gen, pour mes fonctions les types sont les mêmes que les tiens par contre :
val parameters_gen :
  ('a -> bool) -> 'a tree -> int * int * int * int * int * int = <fun>

J'espère t'avoir aidé .

Cordialement,

Chloé Neuville

Ca răspuns la Tristan Knight

Re: problem de type

de către Philippe Duchon-

Le type de votre fonction est:

('a -> 'b -> bool) ->
  'a ->
  ('b tree -> int) * ('b tree -> int) * ('b tree -> int) * ('b tree -> int) *
  ('b tree -> int) * ('b tree -> int)


C'est-à-dire que votre fonction prend comme entrées une fonction de deux paramètres qui retourne un booléen ('a -> 'b -> bool), et une valeur du type de la première entrée ('a), et retourne un sextuplet formé de 6 fonctions de type 'btree -> int, soit, 6 fonctions sur les arbres (de même type) qui retournent chacune un entier.

Cela ne correspond pas à la demande, qui est d'une fonction prenant en entrées un prédicat sur les valeurs des noeuds ('a -> bool) et un arbre ('a btree - le même 'a, c'est-à-dire que le prédicat peut bien être appliqué aux valeurs des noeuds), et retourne 6 valeurs entières (int * int * int * int * int * int).

Donc, votre fonction ne prend pas du tout en entrée un arbre, et les valeurs de retour (6 fonctions?) font penser que, au lieu de retourner les valeurs de vos 6 paramètres, vous retournez les 6 fonctions calculant chacune un des paramètres...


Par ailleurs, comme indiqué dans l'exercice "le retour", ce qui est réellement attendu ce n'est pas que vous écriviez 6 fonctions dont chacune calcule l'un des 6 paramètres, mais plutôt une seule fonction qui calcule les 6 paramètres en un seul parcours.

Ca răspuns la Philippe Duchon

Paramètres importants des arbres binaires

de către Thierno Abdoul Karim Diallo-

Puisque cet exercice a été ajouté tardivement est - il possible de nous donner 1 ou 2 jours de plus..??

Cordialement

Ca răspuns la Thierno Abdoul Karim Diallo

Re: Paramètres importants des arbres binaires

de către Irene Durand-

Les exercices ajoutés récemment ont été prolongés jusqu'au 28/03.