X-Git-Url: https://svn.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/440ca0ba93966e89b68dc54207c461afc0d56264..a891a827a9bad83d44164ffdd7b28f070c439e46:/interpretor/signal.ml diff --git a/interpretor/signal.ml b/interpretor/signal.ml index b493b6c..ae312b0 100644 --- a/interpretor/signal.ml +++ b/interpretor/signal.ml @@ -32,7 +32,7 @@ class signal : int -> (time -> value_type) -> signal_type = else raise (Signal_operation "frequency not matched.") in List.fold_left check self#frequency sl - method private add_memory : int -> unit = + method add_memory : int -> unit = fun (length : int) -> assert (length >= 0); if memory_length >= length then () @@ -141,10 +141,11 @@ class signal : int -> (time -> value_type) -> signal_type = method prefix : signal_type -> signal_type = fun (s_init : signal_type) -> + let () = self#add_memory 1 in let func : time -> value_type = fun t -> if t = 0 then s_init#at 0 - else if t > 0 then self#at t + else if t > 0 then self#at (t - 1) else raise (Signal_operation "prefix time < 0.") in new signal self#frequency func