Re: Irrelevant variables in patterns

Xavier Leroy (xleroy@pauillac.inria.fr)
Mon, 30 May 1994 10:53:30 +0200 (MET DST)

From: Xavier Leroy <xleroy@pauillac.inria.fr>
Message-Id: <9405300853.AA03760@pauillac.inria.fr>
Subject: Re: Irrelevant variables in patterns
To: Judicael.Courant@lip.ens-lyon.fr (Judicael Courant)
Date: Mon, 30 May 1994 10:53:30 +0200 (MET DST)
In-Reply-To: <9405261303.AA13138@lip.ens-lyon.fr> from "Judicael Courant" at May 26, 94 03:03:32 pm

> De maniere generale, le compilateur ne pourrait-il pas fournir un
> "Warning : irrelevant variable xxx in pattern yyy" lorsque qu'une
> variable liee dans un motif n'est pas utilisee ?

Si, mais ca gene ceux d'entre nous qui aiment documenter leur
programme en nommant les feuilles des motifs, et par exemple preferent
ecrire

map (fun (key, data) -> data) the_a_list

plutot que

map (fun (_, data) -> data) the_a_list

Quant a la remarque de Christophe Raffalli:

> La solution serait plutot de fournir un warning lorsque l'on capture toutes
> les exception, car cela est un bug dans 99% des cas (on ne veut pas attraper
> Catch_break ou Out_of_memory en general).

Ce n'est pas un bug lorsqu'on veut faire de la "finalisation":

try ... with exc -> finalize(); raise exc

C'est meme de l'excellent style. Par exemple:

let oc = open_out "foo" in
try
...;
close_out oc
with exc ->
close_out oc;
sys__remove "foo";
raise exc

- Xavier Leroy