In PHP, i valori di default per gli argomenti possono essere impostati come segue:OCaml: valori predefiniti per gli argomenti delle funzioni?
function odp(ftw = "OMG!!") {
//...
}
C'è una funzionalità simile in OCaml?
In PHP, i valori di default per gli argomenti possono essere impostati come segue:OCaml: valori predefiniti per gli argomenti delle funzioni?
function odp(ftw = "OMG!!") {
//...
}
C'è una funzionalità simile in OCaml?
OCaml non ha parametri posizionali opzionali, poiché, poiché OCaml supporta la fase di currying, se si omettono alcuni argomenti sembra proprio un'applicazione parziale. Tuttavia, per i parametri denominati, esistono parametri con nome facoltativo.
normali parametri denominati sono dichiarati in questo modo:
let foo ~arg1 = arg1 + 5;;
opzionali parametri denominati sono dichiarati in questo modo:
let odp ?(ftw = "OMG!!")() = print_endline ftw;;
(* and can be used like this *)
odp ~ftw:"hi mom"();;
odp();;
Nota che eventuali parametri denominati opzionali devono essere seguite da almeno un non-optional parametro, perché altrimenti, per esempio "odp" sopra sembrerebbe solo un'applicazione parziale.
in genere, vorrei semplicemente usare "lascia foo arg1 = arg1 + 5 ;;", senza "~". qual è il punto di questo? –
puoi leggerli qui: http://caml.inria.fr/pub/docs/manual-ocaml/manual006.html#htoc37 – newacct
Il link aggiornato: http://caml.inria.fr/pub/docs/ manuale ocaml/lablexamples.html # sec43 – neo