2009-09-15 29 views

cevap

23

OCaml, isteğe bağlı konumsal parametrelere sahip değildir, çünkü OCaml, köpürmeyi desteklediğinden, bazı argümanları bırakırsanız, kısmi bir uygulamaya benziyor. Ancak, adlandırılmış parametreler için, isteğe bağlı adlandırılmış parametreler vardır.

Normal adlandırılmış parametreleri şöyle bildirilir:

let foo ~arg1 = arg1 + 5;; 

Opsiyonel adlandırılmış parametreleri şöyle bildirilir:

let odp ?(ftw = "OMG!!")() = print_endline ftw;; 

(* and can be used like this *) 
odp ~ftw:"hi mom"();; 
odp();; 

isteğe bağlı herhangi adlandırılmış parametreleri en az bir isteğe bağlı olmayan takip edilmesi gerektiğini Not Parametre, aksi halde örneğin "odp" gibi bir kısmi uygulama gibi görünecektir.

+0

genellikle "~" olmaksızın "let foo arg1 = arg1 + 5 ;;" ifadesini kullanırdım. Bunun anlamı nedir? –

+0

bunlarla ilgili bilgileri buradan okuyabilirsiniz: http://caml.inria.fr/pub/docs/manual-ocaml/manual006.html#htoc37 – newacct

+2

Güncellenmiş link: http://caml.inria.fr/pub/docs/ manuel-ocaml/lablexamples.html # sec43 – neo