Browse thread
Re: [Caml-list] If ou Pattern-matching ?
- Luc Maranget
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Luc Maranget <luc.maranget@i...> |
| Subject: | Re: [Caml-list] If ou Pattern-matching ? |
Je répond en bloc à tout et brièvement.
Sans penser que nous (implémenteurs Caml etc.) détenons la science
infuse, je crois que notre avis sur comment doit être compris un trait
a un certain poids.
Donc le filtrage doit être interprété comme je l'ai expliqué
dans mon message précédent (prédicat ``<='' + liasons).
Ce n'est pas si dur à comprendre.
Le mot « sémantique » fait peut être peur, mais ça ne veut rien dire
d'autre que « voilà ce que votre programme fait ».
Une explication pas trop dure est de dire : voila comment votre
filtrage se traduit en ``if'' et en fonction d'accès aux champs
let f liste = match liste with
| [] -> 0
| x::_ -> x
C'est en fait :
let f liste =
if liste = [] then 0
else
let x = car liste in
x
Où ``car'' est une fonction spéciale qui accède au premier champ d'une
cellule de liste.
NB le fait que l'on puisse définir ``car'' à l'aide du filtrage ne
doit pas nous cacher que, dans le cadre de cette explication ``car''
est ``plus primitif'' que le filtrage.
Votre façon de considérer le filtrage est un brin trop compliquée.
Non seulement ça n'aiderait pas à concevoir le langage (mais c'est
notre problème), mais ça ne vous aide pas a programmer.
Maintenant, je reconnais un déficit d'explication sur ce qu'est le
filtrage aux utilisateurs et en particulier aux débutants.
--Luc Maranget
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr