LanguageExt.Rx
5.0.0-beta-14
See the version list below for details.
dotnet add package LanguageExt.Rx --version 5.0.0-beta-14
NuGet\Install-Package LanguageExt.Rx -Version 5.0.0-beta-14
<PackageReference Include="LanguageExt.Rx" Version="5.0.0-beta-14" />
paket add LanguageExt.Rx --version 5.0.0-beta-14
#r "nuget: LanguageExt.Rx, 5.0.0-beta-14"
// Install LanguageExt.Rx as a Cake Addin #addin nuget:?package=LanguageExt.Rx&version=5.0.0-beta-14&prerelease // Install LanguageExt.Rx as a Cake Tool #tool nuget:?package=LanguageExt.Rx&version=5.0.0-beta-14&prerelease
LanguageExt.Rx
LanguageExt.Rx
are the 'Reactive Extensions' extensions for the language-ext functional programming framework.
The framework uses and abuses the features of C# to provide a pure functional-programming 'Base Class Library' that, if you squint, can look like extensions to the language itself. The desire here is to make programming in C# much more robust by helping the engineer's inertia flow in the direction of declarative and pure functional code rather than imperative.
Using these techniques for large code-bases can bring tangible benefits to long-term maintenance by removing hidden complexity and by easing the engineer's cognitive load.
Features
Functional effects and IO
Atomic concurrency and collections
Location | Feature | Description |
---|---|---|
Core |
Atom<A> |
A lock-free atomically mutable reference for working with shared state |
Core |
Ref<A> |
An atomic reference to be used in the transactional memory system |
Core |
AtomHashMap<K, V> |
An immutable HashMap with a lock-free atomically mutable reference |
Core |
AtomSeq<A> |
An immutable Seq with a lock-free atomically mutable reference |
Core |
VectorClock<A> |
Understand distributed causality |
Core |
VersionVector<A> |
A vector clock with some versioned data |
Core |
VersionHashMap <ConflictV, K, V> |
Distrubuted atomic versioning of keys in a hash-map |
Immutable collections
Location | Feature | Description |
---|---|---|
Core |
Arr<A> |
Immutable array |
Core |
Seq<A> |
Lazy immutable list, evaluate at-most-once - very, very fast! |
Core |
Iterable<A> |
Wrapper around IEnumerable with support for traits - enables the higher-kinded traits to work with enumerables. |
Core |
Lst<A> |
Immutable list - use Seq over Lst unless you need InsertAt |
Core |
Map<K, V> |
Immutable map |
Core |
Map<OrdK, K, V> |
Immutable map with Ord constraint on K |
Core |
HashMap<K, V> |
Immutable hash-map |
Core |
HashMap<EqK, K, V> |
Immutable hash-map with Eq constraint on K |
Core |
Set<A> |
Immutable set |
Core |
Set<OrdA, A> |
Immutable set with Ord constraint on A |
Core |
HashSet<A> |
Immutable hash-set |
Core |
HashSet<EqA, A> |
Immutable hash-set with Eq constraint on A |
Core |
Que<A> |
Immutable queue |
Core |
Stck<A> |
Immutable stack |
Optional and alternative value monads
Location | Feature | Description |
---|---|---|
Core |
Option<A> |
Option monad |
Core |
OptionT<M, A> |
Option monad-transformer |
Core |
Either<L,R> |
Right/Left choice monad |
Core |
EitherT<L, M, R> |
Right/Left choice monad-transformer |
Core |
Fin<A> |
Error handling monad, like Either<Error, A> |
Core |
FinT<M, A> |
Error handling monad-transformer |
Core |
Try<A> |
Exception handling monad |
Core |
TryT<M, A> |
Exception handling monad-transformer |
Core |
Validation<FAIL ,SUCCESS> |
Validation applicative and monad for collecting multiple errors before aborting an operation |
Core |
ValidationT<FAIL, M, SUCCESS> |
Validation applicative and monad-transformer |
State managing monads
Location | Feature | Description |
---|---|---|
Core |
Reader<E, A> |
Reader monad |
Core |
ReaderT<E, M, A> |
Reader monad-transformer |
Core |
Writer<W, A> |
Writer monad that logs to a W constrained to be a Monoid |
Core |
WriterT<W, M, A> |
Writer monad-transformer |
Core |
State<S, A> |
State monad |
Core |
StateT<S, M, A> |
State monad-transformer |
Parser combinators
Location | Feature | Description |
---|---|---|
Parsec |
Parser<A> |
String parser monad and full parser combinators library |
Parsec |
Parser<I, O> |
Parser monad that can work with any input stream type |
Pretty
Location | Feature | Description |
---|---|---|
Core |
Doc<A> |
Produce nicely formatted text with smart layouts |
Differencing
Location | Feature | Description |
---|---|---|
Core |
Patch<EqA, A> |
Uses patch-theory to efficiently calculate the difference (Patch.diff(list1, list2) ) between two collections of A and build a patch which can be applied (Patch.apply(patch, list) ) to one to make the other (think git diff). |
Traits
The traits are major feature of v5
+ language-ext that makes generic programming with higher-kinds a reality. Check out Paul's series on Higher Kinds to get a deeper insight.
Value traits
These work a little like NewType
but they impart semantic meaning and some common operators for the underlying value.
Location | Feature | Description |
---|---|---|
Core |
DomainType<SELF, REPR> |
Provides a mapping from SELF to an underlying representation: REPR |
Core |
Identifier <SELF> |
Identifiers (like IDs in databases: PersonId for example), they are equivalent to DomaintType with equality. |
Core |
VectorSpace<SELF, SCALAR> |
Scalable values; can add and subtract self, but can only multiply and divide by a scalar. Can also negate. |
Core |
Amount <SELF, SCALAR> |
Quantities, such as the amount of money in USD on a bank account or a file size in bytes. Derives VectorSpace , IdentifierLike , DomainType , and is orderable (comparable). |
Core |
LocusLike <SELF, SCALAR, DISTANCE> |
Works with space-like structures. Spaces have absolute and relative distances. Has an origin/zero point and derives DomainType , IdentifierLike , AmountLike and VectorSpace . DISTANCE must also be an AmountLike<SELF, REPR, SCALAR> . |
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- LanguageExt.Core (>= 5.0.0-beta-14)
- System.Reactive (>= 5.0.0)
- System.ValueTuple (>= 4.5.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LanguageExt.Rx:
Package | Downloads |
---|---|
RezisFramework
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.0.0-beta-24 | 4 | 10/11/2024 |
5.0.0-beta-23 | 31 | 10/10/2024 |
5.0.0-beta-22 | 64 | 9/20/2024 |
5.0.0-beta-21 | 63 | 9/20/2024 |
5.0.0-beta-20 | 59 | 9/18/2024 |
5.0.0-beta-19 | 53 | 9/18/2024 |
5.0.0-beta-18 | 69 | 9/16/2024 |
5.0.0-beta-17 | 75 | 9/16/2024 |
5.0.0-beta-16 | 73 | 9/16/2024 |
5.0.0-beta-15 | 68 | 9/16/2024 |
5.0.0-beta-14 | 81 | 9/5/2024 |
5.0.0-beta-13 | 85 | 9/5/2024 |
5.0.0-beta-12 | 66 | 9/4/2024 |
5.0.0-beta-11 | 85 | 9/2/2024 |
5.0.0-beta-10 | 109 | 8/18/2024 |
5.0.0-beta-09 | 78 | 8/18/2024 |
5.0.0-beta-08 | 100 | 8/16/2024 |
5.0.0-beta-07 | 84 | 8/7/2024 |
5.0.0-beta-06 | 40 | 8/4/2024 |
5.0.0-beta-05 | 48 | 8/3/2024 |
5.0.0-beta-04 | 51 | 7/30/2024 |
5.0.0-beta-03 | 58 | 7/29/2024 |
5.0.0-beta-02 | 43 | 7/28/2024 |
5.0.0-beta-01 | 90 | 6/26/2024 |
5.0.0-alpha.11 | 64 | 5/24/2024 |
5.0.0-alpha.10 | 54 | 5/16/2024 |
5.0.0-alpha.7 | 51 | 5/12/2024 |
5.0.0-alpha.6 | 72 | 4/16/2024 |
5.0.0-alpha.5 | 69 | 3/24/2024 |
5.0.0-alpha.3 | 54 | 3/23/2024 |
5.0.0-alpha.2 | 57 | 3/19/2024 |
5.0.0-alpha.1 | 68 | 3/4/2024 |
4.4.9 | 1,460 | 6/26/2024 |
4.4.8 | 1,363 | 2/7/2024 |
4.4.7 | 3,328 | 10/21/2023 |
4.4.6 | 702 | 10/1/2023 |
4.4.5 | 364 | 9/21/2023 |
4.4.4 | 573 | 9/7/2023 |
4.4.3 | 3,071 | 4/14/2023 |
4.4.2 | 1,499 | 2/5/2023 |
4.4.1 | 708 | 2/4/2023 |
4.4.0 | 1,477 | 11/16/2022 |
4.3.2-beta | 954 | 6/29/2022 |
4.3.1-beta | 295 | 6/28/2022 |
4.3.0-beta | 292 | 6/28/2022 |
4.2.9 | 1,552 | 6/27/2022 |
4.2.8 | 567 | 6/27/2022 |
4.2.7 | 621 | 6/16/2022 |
4.2.6 | 554 | 6/16/2022 |
4.2.5 | 540 | 6/15/2022 |
4.2.2 | 669 | 6/7/2022 |
4.2.1 | 613 | 6/4/2022 |
4.2.0 | 584 | 6/4/2022 |
4.1.1 | 1,059 | 5/20/2022 |
4.1.0 | 786 | 5/10/2022 |
4.0.10-beta | 290 | 5/4/2022 |
4.0.9-beta | 281 | 5/2/2022 |
4.0.8-beta | 313 | 3/15/2022 |
4.0.7-beta | 280 | 3/9/2022 |
4.0.6-beta | 277 | 3/9/2022 |
4.0.5-beta | 305 | 3/9/2022 |
4.0.4 | 668 | 3/7/2022 |
4.0.3 | 6,963 | 10/21/2021 |
4.0.2 | 1,924 | 10/20/2021 |
4.0.1 | 536 | 10/20/2021 |
4.0.0 | 636 | 10/17/2021 |
3.5.69-beta | 454 | 10/17/2021 |
3.5.68-beta | 435 | 10/16/2021 |
3.5.67-beta | 441 | 10/16/2021 |
3.5.66-beta | 345 | 10/16/2021 |
3.5.65-beta | 294 | 10/14/2021 |
3.5.64-beta | 365 | 10/9/2021 |
3.5.63-beta | 380 | 10/9/2021 |
3.5.62-beta | 335 | 9/29/2021 |
3.5.61-beta | 387 | 9/28/2021 |
3.5.60-beta | 352 | 9/28/2021 |
3.5.59-beta | 359 | 9/21/2021 |
3.5.58-beta | 317 | 9/20/2021 |
3.5.57-beta | 354 | 9/19/2021 |
3.5.56-beta | 405 | 9/19/2021 |
3.5.55-beta | 336 | 9/19/2021 |
3.5.54-beta | 413 | 9/11/2021 |
3.5.53-beta | 372 | 8/15/2021 |
3.5.52-beta | 332 | 8/15/2021 |
3.5.51-beta | 324 | 8/12/2021 |
3.5.50-beta | 390 | 7/28/2021 |
3.5.49-beta | 393 | 7/28/2021 |
3.5.48-beta | 328 | 7/27/2021 |
3.5.46-beta | 387 | 7/22/2021 |
3.5.45-beta | 363 | 7/21/2021 |
3.5.44-beta | 349 | 7/19/2021 |
3.5.43-beta | 395 | 7/18/2021 |
3.5.42-beta | 362 | 7/18/2021 |
3.5.41-beta | 331 | 7/18/2021 |
3.5.40-beta | 411 | 7/18/2021 |
3.5.39-beta | 380 | 7/18/2021 |
3.5.38-beta | 349 | 7/16/2021 |
3.5.37-beta | 380 | 7/7/2021 |
3.5.36-beta | 380 | 7/7/2021 |
3.5.35-beta | 383 | 7/6/2021 |
3.5.34-beta | 399 | 7/6/2021 |
3.5.33-beta | 387 | 7/5/2021 |
3.5.32-beta | 390 | 7/5/2021 |
3.5.31-beta | 368 | 7/5/2021 |
3.5.30-beta | 339 | 7/5/2021 |
3.5.28-beta | 433 | 6/24/2021 |
3.5.27-beta | 474 | 3/14/2021 |
3.5.26-beta | 376 | 2/26/2021 |
3.5.25-beta | 385 | 2/18/2021 |
3.5.24-beta | 598 | 11/5/2020 |
3.5.23-beta | 457 | 11/4/2020 |
3.5.22-beta | 440 | 11/2/2020 |
3.5.20-beta | 503 | 9/25/2020 |
3.5.19-beta | 460 | 9/21/2020 |
3.5.18-beta | 470 | 9/17/2020 |
3.5.17-beta | 481 | 9/16/2020 |
3.5.16-beta | 481 | 9/10/2020 |
3.5.15-beta | 509 | 8/31/2020 |
3.5.14-beta | 443 | 8/24/2020 |
3.5.13-beta | 461 | 8/21/2020 |
3.5.12-beta | 462 | 8/20/2020 |
3.5.11-beta | 458 | 8/19/2020 |
3.5.10-beta | 471 | 8/17/2020 |
3.5.9-beta | 542 | 8/16/2020 |
3.5.8-beta | 509 | 8/14/2020 |
3.5.7-beta | 517 | 8/14/2020 |
3.5.6-beta | 532 | 8/13/2020 |
3.5.5-beta | 575 | 8/12/2020 |
3.5.4-beta | 479 | 8/10/2020 |
3.5.3-beta | 458 | 7/31/2020 |
3.5.2-beta | 458 | 7/31/2020 |
3.5.1-beta | 463 | 7/21/2020 |
3.5.0-beta | 455 | 7/20/2020 |
3.4.27-beta | 502 | 7/13/2020 |
3.4.26-beta | 505 | 7/8/2020 |
3.4.25-beta | 469 | 7/8/2020 |
3.4.24-beta | 518 | 6/19/2020 |
3.4.23-beta | 508 | 6/12/2020 |
3.4.22-beta | 459 | 6/11/2020 |
3.4.21-beta | 485 | 6/8/2020 |
3.4.20-beta | 595 | 3/13/2020 |
3.4.19-beta | 539 | 3/11/2020 |
3.4.18-beta | 495 | 3/9/2020 |
3.4.17-beta | 586 | 3/7/2020 |
3.4.16-beta | 524 | 3/7/2020 |
3.4.15 | 20,074 | 5/14/2020 |
3.4.15-beta | 481 | 3/5/2020 |
3.4.14 | 703 | 5/5/2020 |
3.4.14-beta | 511 | 3/5/2020 |
3.4.13 | 766 | 3/23/2020 |
3.4.12 | 2,244 | 2/28/2020 |
3.4.11 | 721 | 2/27/2020 |
3.4.10 | 731 | 2/18/2020 |
3.4.2 | 656 | 2/13/2020 |
3.4.1 | 694 | 2/13/2020 |
3.4.0 | 738 | 2/12/2020 |
3.3.51 | 779 | 1/31/2020 |
3.3.50 | 729 | 1/27/2020 |
3.3.49 | 783 | 1/12/2020 |
3.3.48 | 25,660 | 1/3/2020 |
3.3.47 | 743 | 12/31/2019 |
3.3.46 | 692 | 12/16/2019 |
3.3.45 | 781 | 12/11/2019 |
3.3.44 | 745 | 12/10/2019 |
3.3.43 | 748 | 12/10/2019 |
3.3.42 | 753 | 12/10/2019 |
3.3.41 | 2,503 | 11/28/2019 |
3.3.40 | 1,440 | 11/25/2019 |
3.3.39 | 712 | 11/10/2019 |
3.3.38 | 684 | 11/10/2019 |
3.3.37 | 704 | 11/10/2019 |
3.3.36 | 734 | 11/10/2019 |
3.3.35 | 677 | 11/10/2019 |
3.3.34 | 669 | 11/10/2019 |
3.3.33 | 2,866 | 11/9/2019 |
3.3.32 | 715 | 11/9/2019 |
3.3.31 | 731 | 11/9/2019 |
3.3.30 | 767 | 11/8/2019 |
3.3.29 | 1,063 | 10/17/2019 |
3.3.28 | 20,169 | 9/28/2019 |
3.3.27 | 734 | 9/28/2019 |
3.3.26 | 732 | 9/21/2019 |
3.3.25-beta | 543 | 9/18/2019 |
3.3.24 | 735 | 9/18/2019 |
3.3.23 | 754 | 9/17/2019 |
3.3.22 | 760 | 9/17/2019 |
3.3.21 | 740 | 9/15/2019 |
3.3.20 | 753 | 9/7/2019 |
3.3.19 | 784 | 8/21/2019 |
3.3.18 | 733 | 8/21/2019 |
3.3.17 | 730 | 8/20/2019 |
3.3.16 | 727 | 8/18/2019 |
3.3.15 | 720 | 8/18/2019 |
3.3.14 | 709 | 8/18/2019 |
3.3.13 | 713 | 8/16/2019 |
3.3.12 | 733 | 8/16/2019 |
3.3.11 | 746 | 8/15/2019 |
3.3.10 | 775 | 8/14/2019 |
3.3.9 | 1,169 | 8/14/2019 |
3.3.8 | 743 | 8/12/2019 |
3.3.7 | 807 | 8/7/2019 |
3.3.6 | 768 | 8/7/2019 |
3.3.5 | 779 | 8/5/2019 |
3.3.4 | 791 | 7/30/2019 |
3.3.3 | 793 | 7/24/2019 |
3.3.2 | 774 | 7/17/2019 |
3.3.1 | 795 | 7/17/2019 |
3.3.0 | 779 | 7/17/2019 |
3.2.14-beta | 531 | 7/16/2019 |
3.2.13-beta | 561 | 7/16/2019 |
3.2.12-beta | 541 | 7/16/2019 |
3.2.11-beta | 529 | 7/16/2019 |
3.2.10-beta | 565 | 7/16/2019 |
3.2.9-beta | 541 | 7/16/2019 |
3.2.8-beta | 507 | 7/15/2019 |
3.2.7-beta | 549 | 7/15/2019 |
3.2.6-beta | 512 | 7/14/2019 |
3.2.5-beta | 518 | 6/24/2019 |
3.2.4-beta | 521 | 6/24/2019 |
3.2.3-beta | 514 | 6/23/2019 |
3.2.2-beta | 545 | 6/23/2019 |
3.2.1-beta | 538 | 6/22/2019 |
3.2.0-beta | 545 | 6/20/2019 |
3.1.24 | 992 | 5/15/2019 |
3.1.23 | 944 | 5/8/2019 |
3.1.22 | 745 | 5/7/2019 |
3.1.21 | 793 | 5/1/2019 |
3.1.20 | 780 | 5/1/2019 |
3.1.19 | 809 | 4/19/2019 |
3.1.18 | 795 | 4/12/2019 |
3.1.17 | 816 | 4/12/2019 |
3.1.16 | 771 | 4/11/2019 |
3.1.15 | 20,503 | 2/8/2019 |
3.1.14 | 1,032 | 12/7/2018 |
3.1.13 | 936 | 11/10/2018 |
3.1.12 | 969 | 11/1/2018 |
3.1.11 | 957 | 10/31/2018 |
3.1.10 | 907 | 10/31/2018 |
3.1.9-beta | 671 | 10/30/2018 |
3.1.8-beta | 669 | 10/25/2018 |
3.1.7-beta | 682 | 10/24/2018 |
3.1.6-beta | 720 | 10/22/2018 |
3.1.5-beta | 674 | 10/22/2018 |
3.1.4-beta | 693 | 10/19/2018 |
3.1.3-beta | 696 | 10/18/2018 |
3.1.2-beta | 729 | 10/18/2018 |
3.1.1-beta | 716 | 10/17/2018 |
3.1.0-beta | 690 | 10/17/2018 |
3.0.31 | 979 | 10/10/2018 |
3.0.30 | 964 | 10/9/2018 |
3.0.29 | 998 | 10/3/2018 |
3.0.28 | 991 | 10/1/2018 |
3.0.27 | 958 | 10/1/2018 |
3.0.26 | 972 | 9/24/2018 |
3.0.25 | 969 | 9/24/2018 |
3.0.24 | 982 | 9/19/2018 |
3.0.23 | 983 | 9/19/2018 |
3.0.22 | 1,265 | 8/8/2018 |
3.0.21 | 1,040 | 8/8/2018 |
3.0.20 | 1,057 | 7/22/2018 |
3.0.19 | 1,119 | 7/4/2018 |
3.0.18 | 1,077 | 6/26/2018 |
3.0.17 | 1,108 | 6/20/2018 |
3.0.16 | 1,113 | 6/13/2018 |
3.0.15 | 1,137 | 6/13/2018 |
3.0.14 | 1,071 | 6/11/2018 |
3.0.13 | 1,158 | 6/5/2018 |
3.0.12 | 1,115 | 6/5/2018 |
3.0.11 | 1,091 | 6/5/2018 |
3.0.10 | 1,102 | 6/5/2018 |
3.0.9 | 1,134 | 6/5/2018 |
3.0.8 | 1,005 | 6/4/2018 |
3.0.7 | 1,018 | 6/4/2018 |
3.0.6 | 1,055 | 6/4/2018 |
3.0.5 | 1,099 | 6/4/2018 |