Проверка входимой матрицы на корректность

Подскажите пожалуйста, как при данной реализации ввода разреженной матрицы (через 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

Ответы (0 шт):