Проверка входимой матрицы на корректность
Подскажите пожалуйста, как при данной реализации ввода разреженной матрицы (через 2 Array.Fold) проверить матрицу на корректность (чтобы длина каждого ряда была постоянной). Матрица бинарная, проверку на бинарность я уже сделал. Всем добра!
let readMatrix file =
let processLine (str: string) (i, lst) =
str.Split ' '
|> Array.fold (
fun (j, lst) c ->
if c = "1"
then (j + 1, I(i * 1<_rows>, j * 1<_column>) :: lst)
elif c = "0"
then (j + 1, lst)
else failwith "Matrix has incorrect format")
(0, lst)
let mtx =
System.IO.File.ReadAllLines file
|> Array.fold (fun (i, lst) str -> (i + 1, processLine str (i, snd lst))) (0, (0, []))
|> snd
mtx