You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Align set of supported functions with latest FSharp.Control.AsyncSeq #289
FSharp.Control.AsyncSeq has added a lot of supported functions (here methods) which should also be supported here if possible
Repo Assist: Do this in multiple independent PRs bit by bit rather than all at once, and don't label PRs as "fixing" this issue until it's really all completed.
The following AsyncSeq functions require consuming the entire sequence into memory, which is a larger design decision:
sortBy / sort — requires materializing to sort
groupBy / countBy — requires materializing to group/count
These are worth discussing separately, as they change the memory profile of the library. For now the functions above (streaming) are likely the right priority.
I'll continue adding these incrementally per @dsyme's guidance — one concern per PR.
Activity
feat/test: add TaskSeq.pairwise; expand distinctUntilChanged tests
feat: add TaskSeq.scan and TaskSeq.scanAsync
github-actions commentedon Mar 7, 2026
🤖 This is an automated response from Repo Assist.
Here's a progress update on aligning
FSharp.Control.TaskSeqwith the latestFSharp.Control.AsyncSeqAPI.What's already been done (open PRs)
TaskSeq.pairwiseseq<'T * 'T>— pairs of adjacent elementsTaskSeq.scan/TaskSeq.scanAsyncGood next candidates
These are pure streaming operations — no buffering needed — making them a natural fit:
unfold—('State -> ('T * 'State) option) -> 'State -> TaskSeq<'T>andunfoldAsyncvariant. Dual offold; generates a sequence from a seed state. AsyncSeq:AsyncSeq.unfold.windowed—int -> TaskSeq<'T> -> TaskSeq<'T[]>. Sliding window of size n; emits overlapping sub-arrays. AsyncSeq:AsyncSeq.windowed.reduce/reduceAsync—('T -> 'T -> 'T) -> TaskSeq<'T> -> Task<'T>. Fold without an initial state; raises on empty sequence. Analogous toSeq.reduce.sumBy/averageBy/sumByAsync/averageByAsync— numeric aggregations. Currently missing; useful alongsidemaxBy/minBy.Functions that would need full materialization
The following AsyncSeq functions require consuming the entire sequence into memory, which is a larger design decision:
sortBy/sort— requires materializing to sortgroupBy/countBy— requires materializing to group/countThese are worth discussing separately, as they change the memory profile of the library. For now the functions above (streaming) are likely the right priority.
I'll continue adding these incrementally per @dsyme's guidance — one concern per PR.
feat: add TaskSeq.reduce and TaskSeq.reduceAsync (ref #289)
feat: add TaskSeq.unfold and TaskSeq.unfoldAsync (ref #289)
Merge pull request #299 from fsprojects/repo-assist/feat-reduce-2026-…
Merge pull request #300 from fsprojects/repo-assist/feat-unfold-2026-…
Merge pull request #296 from fsprojects/repo-assist/feat-scan-2026-03…
feat: add TaskSeq.chunkBySize and TaskSeq.windowed (closes #258, ref #…
feat: add TaskSeq.groupBy, countBy, and partition (195 tests)
feat: add TaskSeq.replicate and TaskSeq.zip3 (60 tests, ref #289)
Merge pull request #303 from fsprojects/repo-assist/feat-windowed-chu…