type 'a option = None | Some of 'a
type 'a elem = {v: 'a; mutable next: 'a lista}
and 'a lista = 'a elem option
Ćwiczenia na konstrukcje imperatywne:
Counter o następującej sygnaturze:
module type COUNTER = sig
type counter
val make : unit -> counter
val inc : counter -> int
val reset : unit -> unit
end;;
Procedura make tworzy nowy licznik o początkowej wartości 0.
Procedura inc zwiększa licznik o 1 i zwraca jego nową wartość.
Procedura reset ustawia wartość wszystkich liczników na 0.