2010-06-14 12 views
11

Voglio stampare un elenco di stringhe dopo aver attraversato un pattern matching solo per entrare in questa potente funzionalità.come fare il "noop ma tornare all'unità" in OCaml

Come posso esprimere l'operazione "do-nothing-but-return-unit"?

Quello che voglio dire è:

let print_nodes nodes = 
    match nodes with 
     []  -> (* here i want to noop *) 
    | s :: t -> print_string s; print_nodes t 
+0

(So che posso utilizzare la funzione di iter ma ero solo curioso) – Jack

+2

provato con()? – ShinTakezou

+0

ed è necessario aggiungere rec, afaik – ShinTakezou

risposta

22

Si può semplicemente scrivere ().

Vedere Variant values nel manuale: () è come si genera il valore unit.

+0

Ok, ho appena cercato e ottenuto! Ci scusiamo per questa domanda stupida/semplice ma non abbiamo trovato l'unità() vuota fino ad ora:/ – Jack

+1

@Jack Beh, non è usata così spesso :) Se scrivi in ​​uno stile puramente funzionale (senza effetti collaterali) non hai mai devo usarlo a tutti ... –