LeetCode 77. Combinations in F#

URL

Combinations - LeetCode

Code

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

let combine (n: int) (k: int) : int list list =
    let rec combine' start n k acc len ret =
        if len >= k then
            (List.rev acc) :: ret
        else
            seq { start..n }
            |> Seq.fold (fun ret i -> combine' (i + 1) n k (i :: acc) (len + 1) ret) ret

    combine' 1 n k [] 0 []