Rulealize.Plugin.Sequence
1.3.0
See the version list below for details.
dotnet add package Rulealize.Plugin.Sequence --version 1.3.0
NuGet\Install-Package Rulealize.Plugin.Sequence -Version 1.3.0
<PackageReference Include="Rulealize.Plugin.Sequence" Version="1.3.0" />
<PackageVersion Include="Rulealize.Plugin.Sequence" Version="1.3.0" />
<PackageReference Include="Rulealize.Plugin.Sequence" />
paket add Rulealize.Plugin.Sequence --version 1.3.0
#r "nuget: Rulealize.Plugin.Sequence, 1.3.0"
#:package Rulealize.Plugin.Sequence@1.3.0
#addin nuget:?package=Rulealize.Plugin.Sequence&version=1.3.0
#tool nuget:?package=Rulealize.Plugin.Sequence&version=1.3.0
Rulealize.Plugin.Sequence
Generation, transformation and aggregation over Rulealize sequences.
| Plugin id | Rulealize.Plugin.Sequence |
| Namespace | seq |
| Reserved prefix | none |
| Depends on | Rulealize.Abstraction |
| Specification | doc/specification.md |
seq.empty, of, any, count, elementAt, takeWhile, where, select,
selectMany.
This plugin does not know where a sequence came from. Reversi feeds it rays and coordinate
lists produced by a grid plugin it has never heard of, and that works because Sequence is
a kind in the shared value model — not because either plugin references the other.
It also introduces bindings without having any vocabulary for reading one: the name given
by as is read by bind.local and its @ shorthand, in a plugin this one does not
reference. The scope machinery belongs to Rulealize.Abstraction, which both depend on.
Sequences must be re-enumerable, and that is the requirement to know before reading the
specification. Enumerating one sequence value twice must yield the same elements; laziness
is fine, a single-use iterator is not. Reversi binds a ray once and consumes it from two
places — seq.takeWhile and then seq.elementAt — so a single-use implementation would
silently return nothing the second time and the capture rule would quietly stop working.
Recompute on each enumeration or buffer on the first; either is fine.
That requirement is also what makes this the most obvious candidate for replacement in the standard set. Eager or lazy, buffered or recomputed, sequential or parallel: all of it is this implementation's business, so long as re-enumerability and sequence order hold.
Building
dotnet build. Rulealize.Abstraction restores from nuget.org like any other package, so
this repository builds on its own.
NuGet.config also adds a folder feed named LocalNuGet beside the
repositories — added to nuget.org rather than replacing it — which is how a change to the
abstraction is tried out before it is published. Pack it when you have changed it:
dotnet pack path\to\Rulealize.Abstraction\src\Rulealize.Abstraction -c Release -o path\to\LocalNuGet
License
Apache-2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Rulealize.Abstraction (>= 0.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.