La liste Ocaml est une fifo pour une très bonne raison d'immutabilité. Mais comprendre pourquoi elle est comme ça et pourquoi c'est très bien ainsi, est bien au delà d'une introduction à l'informatique.
Les listes OCaml sont naturellement en mode LIFO : dernier arrivé, premier sorti. Ensuite c'est juste le principe des entiers unaires : en quoi c'est au-delà d'une introduction à l'informatique ? C'est ce que fait un enfant quand il apprend à compter avec ses doigts. Si des élèves de terminale ne comprennent pas cela, il y a un gros soucis.
Les listes OCaml sont LIFO par construction :
letpushxl=x::lletl=[]|>push`As|>push`Roi|>push`Dame;;vall:[>`As|`Dame|`Roi]list=[`Dame;`Roi;`As](* la première à sortir est la dernière arrivée, à savoir `Dame *)List.hdl;;-:[>`As|`Dame|`Roi]=`Dame
Ensuite, si l'on fait abstraction des valeurs contenus dans la liste, on obtient une liste de type unit list :
List.mapignorel;;-:unitlist=[();();()]
et une telle liste c'est les entiers unaires : une liste de bâtons, de traits, de points...
Qu'est-ce qu'on fait, le plus souvent, avec une liste ? On utilise un fold, c'est à dire le principe du raisonnement par récurrence sur les nombres entiers. Il vient en deux versions : fold_left (mode LIFO) et fold_right (mode FIFO).
Non, vraiment, je ne vois pas où est le problème d'aborder ces notions dans une introduction à l'informatique. Cela fait partie des concepts les plus simples à assimiler.
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: critiques
Posté par kantien . En réponse au journal La spécialité N.S.I. de la réforme du lycée ( épisode 2 ). Évalué à 5.
Les listes OCaml sont naturellement en mode LIFO : dernier arrivé, premier sorti. Ensuite c'est juste le principe des entiers unaires : en quoi c'est au-delà d'une introduction à l'informatique ? C'est ce que fait un enfant quand il apprend à compter avec ses doigts. Si des élèves de terminale ne comprennent pas cela, il y a un gros soucis.
Les listes OCaml sont LIFO par construction :
Ensuite, si l'on fait abstraction des valeurs contenus dans la liste, on obtient une liste de type
unit list:et une telle liste c'est les entiers unaires : une liste de bâtons, de traits, de points...
Qu'est-ce qu'on fait, le plus souvent, avec une liste ? On utilise un
fold, c'est à dire le principe du raisonnement par récurrence sur les nombres entiers. Il vient en deux versions :fold_left(mode LIFO) etfold_right(mode FIFO).Non, vraiment, je ne vois pas où est le problème d'aborder ces notions dans une introduction à l'informatique. Cela fait partie des concepts les plus simples à assimiler.
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.