-let three = Array.length Sys.argv = 1;;
-
-let discriminator =
- if three
- then (module Lambda3 : Discriminator.Discriminator)
- else (module Lambda4);;
-
-module Pippo = (val discriminator);;
-open Pippo;;
+open Lambda4;;
+open Util;;
let acaso l =
let n = Random.int (List.length l) in
if n > 0 then repeat f (n-1)
;;
-let call_main3 tms =
+(* let call_main3 tms =
let _ = (
List.iter prerr_endline tms; prerr_newline ();
) in Lambda3.main [Lambda3.magic tms ["*"]]
-;;
+;; *)
let call_main4 div convs nums =
- let _ = (
- (match div with Some div -> prerr_endline ("DIV: " ^ div) | None -> ());
- print_endline "CONV:"; List.iter prerr_endline convs;
- print_endline "NUMS:"; List.iter prerr_endline nums;
- prerr_newline ();
- ) in Lambda4.main [Lambda4.magic_conv div convs nums ["*"]]
+ let p = String.concat "\n" (
+ "$! randomly generated test" ::
+ ("D " ^ div) ::
+ List.map ((^) "C ") convs @
+ List.map (fun s -> "N " ^ s ^ " Z") nums
+ ) in
+ prerr_endline p;
+ (Lambda4.solve ++ Lambda4.problem_of ++ Parser.problem_of_string) p
;;
let main =
(* let open Parser in *)
- if three then repeat (fun _ ->
+ (* if three then repeat (fun _ ->
let tms = test3 complex vars in
call_main3 tms
) num
- else repeat (fun _ ->
+ else *)
+ repeat (fun _ ->
let div, (conv, nums) = test4 complex vars in
- call_main4 (Some div) conv nums
+ call_main4 div conv nums
) num
;