caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] type annotations for function values
@ 2004-03-25 19:42 fis
  2004-03-25 20:00 ` Kenneth Knowles
  0 siblings, 1 reply; 2+ messages in thread
From: fis @ 2004-03-25 19:42 UTC (permalink / raw)
  To: caml-list



hi all,

as the grammar and type system of ocaml are so sophisticated, i am
often having trouble narrowing down the source of an error message.
the answer are of course type annotations, "i know this function here
must have this type, trust me", something of that ilk.

now this is easy:

  let f (x : float) (y : float) = 3 in 4;;

but what do i do if i want to write down an explicit type for f?  the
only thing i found that works is

  let f : (float -> float -> int) = (fun x y -> 3) in 4;;

which is horribly inelegant.  why can't i do something like this?

  let (f : (float -> float -> int)) x y = 3 in 4;;
  let ((f x y) : (float -> float -> int)) = 3 in 4;;
  let ((f (x : float) (y : float)) : int) = 3 in 4;;

the last one seems wrong, but anyway, i am still hoping that something
like this exists.

thanks,
matthias

-------------------
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


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

* Re: [Caml-list] type annotations for function values
  2004-03-25 19:42 [Caml-list] type annotations for function values fis
@ 2004-03-25 20:00 ` Kenneth Knowles
  0 siblings, 0 replies; 2+ messages in thread
From: Kenneth Knowles @ 2004-03-25 20:00 UTC (permalink / raw)
  To: caml-list


The syntax for what you want is:

# let f (x : float) (y : float) : int = 3 in 4;;

You almost had it:

On Thu, Mar 25, 2004 at 08:42:54PM +0100, fis@wiwi.hu-berlin.de wrote:
>   let ((f (x : float) (y : float)) : int) = 3 in 4;;


Kenn

-------------------
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


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

end of thread, other threads:[~2004-03-25 20:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-25 19:42 [Caml-list] type annotations for function values fis
2004-03-25 20:00 ` Kenneth Knowles

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).