caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] naming parts of optional arguments?
@ 2003-03-28  1:05 Chris Hecker
  2003-03-28  1:10 ` Chris Hecker
  2003-03-28  1:43 ` Max Kirillov
  0 siblings, 2 replies; 10+ messages in thread
From: Chris Hecker @ 2003-03-28  1:05 UTC (permalink / raw)
  To: caml-list


Is there a way to name the components of an optional argument?

# let f ((x,y) as xy) = xy;;
val f : 'a * 'b -> 'a * 'b = <fun>
# let f ?xy () = xy;;
val f : ?xy:'a -> unit -> 'a option = <fun>
# let f ?((x,y) as xy) () = xy;;
Characters 8-9:
   let f ?((x,y) as xy) () = xy;;
           ^
Syntax error

Chris

-------------------
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] 10+ messages in thread
* Re: [Caml-list] naming parts of optional arguments?
@ 2003-03-28  1:32 Matt Gushee
  0 siblings, 0 replies; 10+ messages in thread
From: Matt Gushee @ 2003-03-28  1:32 UTC (permalink / raw)
  To: Chris Hecker

On 27 Mar 2003 at 17:05, Chris Hecker wrote:
 
> Is there a way to name the components of an optional argument?

Are you sure that's what you need to do? Your examples don't show you 
using the x and y values separately.

> # let f ((x,y) as xy) = xy;;
> val f : 'a * 'b -> 'a * 'b = <fun>
> # let f ?xy () = xy;;
> val f : ?xy:'a -> unit -> 'a option = <fun>
> # let f ?((x,y) as xy) () = xy;;
> Characters 8-9:
>    let f ?((x,y) as xy) () = xy;;

At any rate, this works for me:

  # let f ?(xy = 0.0, 0.0) () = xy;;
  val f : ?xy:float * float -> unit -> float * float = <fun>

Now you know xy is a pair of floats, and it's simple to extract the 
separate values if you need to. Or do you need something else that 
I've missed?

-- 
Matt Gushee
Englewood, CO USA

-------------------
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] 10+ messages in thread

end of thread, other threads:[~2003-07-29 21:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-28  1:05 [Caml-list] naming parts of optional arguments? Chris Hecker
2003-03-28  1:10 ` Chris Hecker
     [not found]   ` <8F4A019E-60BD-11D7-829E-000393BA7EBA@wetware.com>
2003-03-28  2:11     ` Chris Hecker
2003-07-28  3:41       ` Chris Hecker
2003-07-28  7:18         ` Jacques Garrigue
2003-07-28 16:35           ` Chris Hecker
2003-07-29  3:19             ` Jacques Garrigue
2003-07-29 21:52               ` Chris Hecker
2003-03-28  1:43 ` Max Kirillov
2003-03-28  1:32 Matt Gushee

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