2010-06-14 7 views
11

Chcę wydrukować listę ciągów po przejściu przez wzorzec pasujący tylko do tej potężnej funkcjonalności.jak wykonać "noop but return unit" w OCaml

Jak mogę wyrazić operację "nie wykonuj nic poza zwrotem"?

Chodzi mi o to:

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

(Wiem, że mogę użyć funkcji iter, ale byłem po prostu ciekawy) – Jack

+2

próbował z()? – ShinTakezou

+0

i musisz dodać rec, afaik – ShinTakezou

Odpowiedz

22

można po prostu napisać ().

Patrz: Variant values w podręczniku: () to sposób budowania wartości unit.

+0

OK, właśnie go szukałem i mam! Przepraszam za to głupie/proste pytanie, ale nie znalazłem() pustej jednostki do tej pory:/ – Jack

+1

@Jack Cóż, nie jest to często używane :) Jeśli piszesz w czysto funkcjonalnym stylu (bez efektów ubocznych) to nigdy w ogóle go używać ... –