salut à tous,
je dois programmer une fonction itere, qui a une fonction f et un entier n associe la fonction . 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
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.
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
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :