LeetCode 1572. Matrix Diagonal Sum in F#

URL

Matrix Diagonal Sum - LeetCode

Code

https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/1572/main.fsx

let diagonalSum (mat: int[,]) : int =
    let rec diagonalSum' i n (mat: int[,]) acc =
        if i = n then
            if n % 2 = 0 then
                acc
            else
                let half = n / 2
                acc - mat.[half, half]
        else
            let acc' = acc + mat.[i, i] + mat.[n - 1 - i, i]
            diagonalSum' (i + 1) n mat acc'

    diagonalSum' 0 (Array2D.length1 mat) mat 0