Skip to content

Add AsyncSeq.chunkBySize #175

Description

@brianberns

Just like Seq.chunkBySize. Possible implementation:

    let chunkBySize (chunkSize : int) (source: AsyncSeq<'a>) =
        asyncSeq {
            use enumerator = source.GetEnumerator()
            let mutable isFinished = false
            while not isFinished do
                let chunk = ResizeArray<'a>(chunkSize)
                while chunk.Count < chunkSize && not isFinished do
                    match! enumerator.MoveNext() with
                        | Some item -> chunk.Add(item)
                        | None -> isFinished <- true
                if chunk.Count > 0 then
                    yield chunk.ToArray()
        }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions