In PHP können Standardwerte für Argumente wie folgt festgelegt werden:OCaml: Standardwerte für Funktionsargumente?
function odp(ftw = "OMG!!") {
//...
}
Gibt es ähnliche Funktionen in OCaml?
In PHP können Standardwerte für Argumente wie folgt festgelegt werden:OCaml: Standardwerte für Funktionsargumente?
function odp(ftw = "OMG!!") {
//...
}
Gibt es ähnliche Funktionen in OCaml?
OCaml hat keine optionalen Positionsparameter, da OCaml das Currying unterstützt, wenn Sie einige Argumente weglassen, sieht es nur wie eine partielle Anwendung aus. Für benannte Parameter gibt es jedoch optionale benannte Parameter.
Normale benannte Parameter werden wie folgt erklärt:
let foo ~arg1 = arg1 + 5;;
Optional benannte Parameter werden wie folgt erklärt:
let odp ?(ftw = "OMG!!")() = print_endline ftw;;
(* and can be used like this *)
odp ~ftw:"hi mom"();;
odp();;
Beachten Sie, dass alle optionalen benannte Parameter müssen durch mindestens ein nicht-optional gefolgt werden Parameter, weil sonst zB "odp" oben nur wie eine Teilapplikation aussehen würde.
Normalerweise würde ich einfach "let foo arg1 = arg1 + 5 ;;" verwenden, ohne das "~". Was ist der Sinn? –
können Sie über sie hier lesen: http://caml.inria.fr/pub/docs/manual-ocaml/manual006.html#htoc37 – newacct
Der aktualisierte Link: http://caml.inria.fr/pub/docs/ manual-ocaml/lablexamples.html # sec43 – neo