У меня эта ошибка появляется, когда я пытался протестировать свои функции, может ли кто-нибудь знать, откуда эта ошибка?
let () =
let t = Sys.time() in
let args_n = Array.length Sys.argv - 1 in
let args_list = Array.to_list (Array.sub Sys.argv 1 args_n) in
List.iter (fun element ->
let length_of_element = String.length element in
let text = check_if_file(List.nth args_list 1) in
let int_ls = search (to_list_ch element) text length_of_element) (check_if_file(List.nth args_list 0 )) in
if (List.length int_ls)> 1 then print_string "pattern found at characters "
else if (List.length int_ls) = 1 then print_string "Pattern found at character "
else print_string "No patterns found."
;
print_ls int_ls;
Printf.printf "Execution time: %fs\n" (Sys.time() -. t);;
Ocaml сообщает, что она возникла из закрывающей скобки после length_of_element, но вещи - если я удалю его, открывающая скобка в строке List.iter не будет иметь никакой закрывающей скобки, соответствующей ему. это:
let () =
let t = Sys.time() in
let args_n = Array.length Sys.argv - 1 in
let args_list = Array.to_list (Array.sub Sys.argv 1 args_n) in
let pattern =check_if_file(List.nth args_list 0 )in
let lpattern = String.length pattern - 1 in
let text = check_if_file(List.nth args_list 1) in
let int_ls = search (to_list_ch pattern) text lpattern in
if (List.length int_ls)> 1 then print_string "pattern found at characters "
else if (List.length int_ls) = 1 then print_string "Pattern found at character "
else print_string "No patterns found."
;
print_ls int_ls;
Printf.printf "Execution time: %fs\n" (Sys.time() -. t);;
Но он работал только для одной строки, а не для нескольких строк, поэтому я tr ie перебирать в списке, чтобы он работал не только для одной строки, а для списка строк