2016-02-03 00:37:03 +01:00
|
|
|
open Core.Std
|
2014-10-26 12:46:17 +01:00
|
|
|
|
|
|
|
(*
|
2014-09-18 17:01:43 +02:00
|
|
|
let rec transpose = function
|
|
|
|
| [] -> []
|
|
|
|
| []::tail -> transpose tail
|
|
|
|
| (x::t1)::t2 ->
|
|
|
|
let new_head = (x::(List.map List.hd t2))
|
|
|
|
and new_tail = (transpose (t1 :: (List.map List.tl t2) ))
|
|
|
|
in
|
|
|
|
new_head @ new_tail
|
|
|
|
;;
|
2014-10-26 12:46:17 +01:00
|
|
|
*)
|
|
|
|
|
|
|
|
let input_to_sexp s =
|
|
|
|
let result =
|
|
|
|
String.split_lines s
|
|
|
|
|> List.filter ~f:(fun x->
|
|
|
|
(String.strip x) <> "")
|
|
|
|
|> List.map ~f:(fun x->
|
|
|
|
"("^(String.tr '=' ' ' x)^")")
|
|
|
|
|> String.concat
|
|
|
|
in
|
|
|
|
print_endline ("("^result^")");
|
|
|
|
"("^result^")"
|
|
|
|
|> Sexp.of_string
|
2016-02-03 00:37:03 +01:00
|
|
|
|
|
|
|
let rmdir dirname =
|
|
|
|
let rec remove_one dir =
|
|
|
|
Sys.chdir dir;
|
|
|
|
Sys.readdir "."
|
|
|
|
|> Array.iter ~f:(fun x ->
|
|
|
|
match (Sys.is_directory x, Sys.is_file x) with
|
|
|
|
| (`Yes, _) -> remove_one x
|
|
|
|
| (_, `Yes) -> Sys.remove x
|
|
|
|
| _ -> failwith ("Unable to remove file "^x^".")
|
|
|
|
);
|
|
|
|
Sys.chdir "..";
|
|
|
|
Unix.rmdir dir
|
|
|
|
in
|
|
|
|
remove_one dirname
|
|
|
|
|
|
|
|
|
2014-08-27 16:38:13 +02:00
|
|
|
|