Ааааа. тут какой то жёсткий БАГ завёлся... никак не найду. програмка вроде не мудрёная, все кто может помогите. open String;;
(*смотрим сколько раз ашка повторяется в строке l *)
let rec proverka j l a =
if j>=0 then
(if l.[j]=a then 1+(proverka (j-1) l a) else proverka (j-1) l a)
else 0;;
(*пробигаем по всем элементам первой строки и сравниваем количество включений каждого элемента в первой строке и во второй, если одинаково тоо всё хорошо, идём дальше, если нет, всё плохо... сигнатура string -> string -> bool*)
let rec polinom i l m =
if i>=0 then (if (proverka i l l.[i])=(proverka i m l.[i])
then polinom (i-1) l m else false)
else true;;
(*если их длины ровны то начинаем манипуляции, если же нет то нечего и старатся*)
let rec gh l m =
if (length l)=(length m) then polinom ((length l)-1) l m else false;;
let test l m = if gh m l then print_string "\n OK!"
else print_string "\n Oh! NO!";;
test "qw" "wq";;