logo

CAML: problème fonction itere: f n -> f^n=fofo...of


algorithmiqueCAML: problème fonction itere: f n -> f^n=fofo...of

#msg2921277 Posté le 07-03-10 à 14:06
Posté par ProfilStef- Stef-

salut à tous,

je dois programmer une fonction itere, qui a une fonction f et un entier n associe la fonction f^n=fofo....of. le problème, c'est que j'y arrive pas. et surtout, que je ne vois pas ce qui cloche dans ce que j'écris, à savoir:

let rec itere f n= match n with
|0 -> function x -> x
|_ -> function x -> f ((itere f (n-1)) x);;

et le message d'erreur de Caml "Error: This expression has type ('a -> 'b) -> 'a -> 'b but is here used with type 'a -> 'c" qui va avec... qui m'aide moyennement on va dire.

bref, j'éspère que quelqu'un pourra me débloquer, je pense pas au vu du problème que ça doit être très dur, mais je vois pas... d'avance merci
re : CAML: problème fonction itere: f n -> f^n=fofo...of#msg2921428 Posté le 07-03-10 à 14:42
Posté par ProfilDrysss Drysss

crée toi une fonction compose qui marche à côté pour avoir plus précisément où ca bug.

Par exemple :
let compose f g = function
|x-> f (g x);;

et après tu fais le programme :

let rec itere f = function
|0-> (function |x -> x)
|n -> compose f (itere f (n-1));;

Je n'ai pas caml donc je ne peux pas tester.
re : CAML: problème fonction itere: f n -> f^n=fofo...of#msg2921594 Posté le 07-03-10 à 15:19
Posté par ProfilStef- Stef-

sur tes conseils, j'ai fait:

let compose f g x = f (g x);;

let rec itere f n = match n with
|0-> (function x -> x)
|n -> compose f (itere f (n-1));;

et ça marche bien merci. par contre je ne comprend toujours pas ce qui a pu cloché pour ce que j'avais fait dans mon 1er post
re : CAML: problème fonction itere: f n -> f^n=fofo...of#msg2922694 Posté le 07-03-10 à 18:50
Posté par ProfilDrysss Drysss

Il est possible qu'il y ait des problemes avec le parenthesage.

Sinon je ne vois pas...

Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.

  • Ce topic

    imprimer Imprimer
    réduire la tailleRéduire   /   agrandir la tailleAgrandir

    Pour plus d'options, connection connectez vous !
  • Fiches de maths



maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2012