LeetCode 118. Pascal's Triangle in F#

URL

leetcode.com/problems/pascals-triangle

Code

github.com/syohex/dotnet-study/blob/master/..

let generate (numRows: int) : int list list =
    let rec generate' i limit (prev: int []) acc =
        if i >= limit then
            acc |> List.rev
        else
            let v =
                seq { 0..i }
                |> Seq.fold
                    (fun acc j ->
                        if j = 0 || j = i then
                            1 :: acc
                        else
                            (prev.[j - 1] + prev.[j]) :: acc)
                    []
                |> List.rev

            generate' (i + 1) limit (v |> List.toArray) (v:: acc)

    generate' 0 numRows [||] []