Я написал функцию, используемую для декомпозиции булевой функции, проблема в том, что при компиляции я получаю следующее: «Предупреждение 5: это приложение функции является частичным, возможно, отсутствуют некоторые аргументы».
Как я могу решить эту проблему? Я неправильно установил соответствие шаблона или не могу запустить эту операцию с сопоставлением с шаблоном
Код следующий:
let rec decomposition state_init state prec formula =
match formula with
And form -> (fun () ->
let f1 = List.hd form in
let f2 = And(List.tl form )in
let new_state = Forms (state_init,f1) in
decomposition state_init new_state state f1;
decomposition state_init new_state state f2;
Hashtbl.add graph new_state (("",false,state :: []) , []) ;
let x = Hashtbl.find graph state in
let succ = state :: snd x in
let (desc,last,ptrs) = fst x in
Hashtbl.replace graph state ( ("And-node",last,ptrs) , succ))