caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Limitations du filtrage
@ 1997-01-29 16:33 Valentin Bonnard
  1997-01-29 17:58 ` Pierre Weis
  0 siblings, 1 reply; 2+ messages in thread
From: Valentin Bonnard @ 1997-01-29 16:33 UTC (permalink / raw)
  To: caml-list

J'ai essaye' ce programme avec caml-light:

let x = 4;;
let f = fun x -> true
          | _ -> false;;

Je voulais faire une fonction qui teste si son 
argument vaut 4.

A ma grande surprise cela n'a pas fonctioner puisque 
caml-light interprete cela comme:

let f = fun _ -> true
          | _ -> false;;

Cela implique qu'il n'est pas possible de de'finir
de vraies constantes symboliques dans le langage.

De meme

let f = fun 2+2 -> true
          | _   -> false;;

n'est pas accepte'.

On ne peut pas introduire de variable valant 2+2;
comment faire si on ne sait pas calculer a la main
2+2 pour faire un filtrage ? (sans utiliser le
when).

De plus:

let rec compare_list = fun
      (x::_) (x::_)  -> x
    | (_::l) (_::l') -> compare_list l l'
    | _ _ -> raise No_Common_Elt
;;

Produit le message:
The variable x is bound several times in this pattern.

Bien sur on peut utiliser un when mais le filtrage est
sense' etre une solution elegante et je ne considere pas
le fait d'introduire deux noms de variables pour tester
si elle sont egale comme particulierement elegant.
(J'ai fais du Prolog avant de faire du Caml.)

Il n'est pas non plus possible d'utiliser la meme
variable dans un filtrage avec |

   | 1,x::_ | _,[x] -> une_action_complique'e x

n'est pas accepte'.

Il faut repeter

  | 1,x::_ -> une_action_complique'e x
  | 1,x::_ -> une_action_complique'e x

Qui est lourd est long si une_action_complique'e 
est long.

Y a t_il une raison profonde a ces limitations ?

Est-ce que les restrictions minuscules/majuscules
en O'Caml pourraient resoudre le probleme ?

-- 

+-----------------------------------------------+
+ Valentin Bonnard                              +
+ mailto:bonnardv@pratique.fr                   +
+ mailto:p6inf533@ufr-info-p6.cicrp.jussieu.fr  +
+ mailto:p6inf533@maya.cicrp.jussieu.fr         +
+-----------------------------------------------+





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1997-01-29 18:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-01-29 16:33 Limitations du filtrage Valentin Bonnard
1997-01-29 17:58 ` Pierre Weis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).