Voila une solution, en utilisant la récursivité(~à une utiliser une boucle)
# let rec creer_liste inf sup= if (inf>sup) then
[]
else
inf::creer_liste (inf+1) sup;;
(et voici le resultat du typage :val creer_liste : int -> int -> int list = <fun> )
explications:
----------------
-Le case de base( appelé cas trivial) est celui où la borne inf est > a la borne Sup. Dans ce cas 'ya rien a faire, on renvoit une liste vide.Ce cas est fondamental, c'est lui qui permet d'eviter que ta fonction recursive boucle a l'infini!
-Sinon (c'est le cas general) en utilsant la récursivité, le probleme se resume a dire çà:
<< le resultat de la création d'une liste entre a et b, c'est : le resulat de l 'ajout de a en tête, de la liste crée entre a+1 et b >>
et voila !
exemple:
------------
# creer_liste 0 10;;
- : int list = [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
PS: /!\
quand tu utilses la fonction avec un entier <0 , ecris celui ci entre parenthèse, sinon Ocaml penses que tu fais une soustraction.
# creer_liste (-1) 1;;
- : int list = [-1; 0; 1]
Voila, j'espere que c'était assez claire, sinon n'hésites pas , à me demander d'autres explications!
---------------
>>>www.tineonline.tk<<<