Browse thread
[Caml-list] optional arguments
[
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: | 2003-11-17 (16:24) |
From: | Brian Hurt <bhurt@s...> |
Subject: | Re: [Caml-list] optional arguments |
On Mon, 17 Nov 2003, Selentek 24331-03 wrote: > Hello, > > Is there any way to "send optional argument with None value". > for example: > > let a = None;; > val a : 'a option = None If you delete the above two lines... > > let f ?v () = > match v with > | Some i -> i + 1 > | None -> 0 > This code just does what you want it to. It has the type: val f : ?v:int -> unit -> int = <fun> And is called like: f ();; (* returns 0 *) f ~v:1 () ;; (* returns 2 *) Another possibility is to do: let f ?(v = None) () = match v with None -> 0 | Some i -> i + 1 ;; This has the type: val f : ?v:int option -> unit -> int = <fun> And is called like: f ();; (* returns 0 *) f ~v:None ();; (* returns 0 *) f ~v:(Some 1) ();; (* returns 2 *) Form #2 is probably want you want to do if you just want to pass in an option. > > Sorry for my english. > Your english is as good as mine :-}. -- "Usenet is like a herd of performing elephants with diarrhea -- massive, difficult to redirect, awe-inspiring, entertaining, and a source of mind-boggling amounts of excrement when you least expect it." - Gene Spafford Brian ------------------- 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