Bonjour,

Je suis débutant en caml et j'ai un probléme avec un exercice , voici l'énoncé:


Programmez une fonction qui prend pour paramètres
1. une fonction f de type a → a,
2. un élément x de type a,
3. et un entier n ≥ 0,
qui construit la liste [x; f(x); f²(x); ... ;f^n (x)].

Voici le code que j'ai fait:

Code:
let rec itere = fun f n x -> 
if n=0 then x::[ ]
else f(itere f (n-1) x)::[ ];;
Le probléme c'est que quand je fait :
itere succ 5 0;;

Il me renvoie
Error: This expression has type int -> int
but an expression was expected of type 'a list -> 'a

En plus de cela je ne suis pas sur de comprendre ce que veut dire f²(x).

Pouvez vous m'aider? merci d'avance