Browse thread
[Caml-list] Total application of function with labels
-
Manos Renieris
- Evan Martin
- Jacques Garrigue
[
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: | 2004-05-11 (05:13) |
From: | Jacques Garrigue <garrigue@k...> |
Subject: | Re: [Caml-list] Total application of function with labels |
From: Manos Renieris <er@cs.brown.edu> > Total applications of functions with labeled arguments will work, > even if the actual arguments have no labels. So if you call > let my_a = ... in > let my_b = ... in > f my_b my_a > it doesn't matter whether you declared > let f (a:int) (b:int) = a * (b + 1);; > or > let f ~(a:int) ~(b:int) = a * (b + 1);; > and none will save you from the bug of passing the arguments in the > wrong order. A bug like this cost me a few nights of sleep a while ago. > > Is there a programming convention that would "enforce" labeling the > arguments in a total application of a certain function? There is a warning, but it is turned off by default. You just have to turn it on. $ ocaml -w L # let f ~(a:int) ~(b:int) = a * (b + 1);; val f : a:int -> b:int -> int = <fun> # f 2 3;; ^ Warning: labels were omitted in the application of this function. - : int = 8 --------------------------------------------------------------------------- Jacques Garrigue Kyoto University garrigue at kurims.kyoto-u.ac.jp <A HREF=http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/>JG</A> ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners