01.06.2013 Views

Appel initial : Le premier appel de la fonction.

Appel initial : Le premier appel de la fonction.

Appel initial : Le premier appel de la fonction.

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3°.b/ Fonction histogramme qui affiche un histogramme horizontal représentant les entiers<br />

contenus dans une liste.<br />

Unit list :<br />

Récursivité c<strong>la</strong>ssique<br />

let rec histogramme liste =<br />

match liste with<br />

|[] -> []<br />

|h::t -> ligne 'X' h::histogramme t;;<br />

val histogramme : int list -> unit list list = <br />

histogramme [1;2;3];;<br />

XXX<br />

XX<br />

X<br />

- : unit list = [(); (); ()]<br />

Récursivité terminale<br />

let histogramme liste =<br />

let rec aux accumu<strong>la</strong>teur liste =<br />

match liste with<br />

|[] -> accumu<strong>la</strong>teur<br />

|h::t -> aux (ligne 'X' h::accumu<strong>la</strong>teur) t<br />

in<br />

aux [] liste;;<br />

val histogramme : int list -> unit list list = <br />

histogramme [1;2;3];;<br />

X<br />

XX<br />

XXX<br />

- : unit list = [(); (); ()]<br />

Unit<br />

let rec histogramme liste =<br />

match liste with<br />

|[] -> ()<br />

|h::t -> begin ligne 'X' h; histogramme t end;;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!