相当于FSharp中Ruby的Enumerable#each_slice方法

时间:2016-03-02 15:25:31

标签: ruby f#

我目前正在写一些F#。我创建了一个方法,它相当于Ruby的Enumerable#each_slice方法,并且想知道某人是否有更好的(即更优雅,更简洁,更易读)解决方案。

这是:

let rec slicesBySize size list =
    match list with
    | [] -> [] // case needed for type inference
    | list when list.Length < size -> [list]
    | _ ->
        let first = list |> Seq.take size |> List.ofSeq
        let rest = list |> Seq.skip size |> List.ofSeq

        [first] @ slicesBySize size rest

感谢您提供任何反馈/帮助。

1 个答案:

答案 0 :(得分:3)

您正在寻找在F#4.0中添加的List.chunkBySize。还有SeqArray个变体。