Comments (7)
I don't have any plans for future development but I would love to see how Eff can be used in a practical setting.
from eff.
Based on the research, talks, and examples I've read, it seems very logical to at least couple this with Maybe and Result containers.
My last project was largely written using this other functional library:
https://github.com/vkhorikov/CSharpFunctionalExtensions/
I will probably use it on this new project as well, and try to figure out if/how the two can be used together.
from eff.
For posterity, in Eric Torreborre's talk about using Eff monad in Scala, he provides library implementation of what is very likely to be the first few practical monads bulit on top of Eff:
https://youtu.be/KGJLeHhsZBo?t=1606
Here are the effects included:
Monad | description |
---|---|
EvalEffect | an effect for delayed computations |
OptionEffect | an effect for optional computations, stopping when thereโs no available value\ |
EitherEffect | an effect for computations with failures, stopping when there is a failure |
ValidateEffect | an effect for computations with failures, allowing to collect failures |
ErrorEffect | a mix of Eval and Either, catching exceptions and returning them as failures |
ReaderEffect | an effect for depending on a configuration or an environment |
WriterEffect | an effect to log messages |
StateEffect | an effect to pass state around |
ListEffect | an effect for computations returning several values |
ChooseEffect | an effect for modeling non-determinism |
MemoEffect | an effect for memoizing values |
FutureEffect | an effect for asynchronous computations |
SafeEffect | an effect for guaranteeing resource safety |
http://atnos-org.github.io/eff/org.atnos.site.OutOfTheBox.html
from eff.
Given the above, it's possible that there are the most opportunities for using this implementation of Eff along with the language-ext
library.
https://github.com/louthy/language-ext
Assuming basic compatibility/compose-ability between your Eff type and the types in that library, I can see a very simple step forward in bringing both libraries together into a pilot project and trying to mimic the above Effect types. If we achieve relative success, and can prove substantial value and maturity, we may want to consider submitting this Eff monad, and the composed types back to the language-ext
library for inclusion. However, I emphasize the need for maturity and proof of value, so in theory it should stay a separate library for a long time while it evolves.
from eff.
I'm not familiar with language-ext but I agree that it needs maturity and proof of value.
from eff.
If you have time to look language-ext over, i would like to know your thoughts.
from eff.
My question has been answered. The library currently appears to be a complete implementation of Eff which is ready for general use.
from eff.
Related Issues (8)
- Pattern Matching on Eff type
- Question about the example EffectHandler in README.md HOT 5
- Question: Handle some effects but not all HOT 5
- Recommended way for effect transformation HOT 2
- Null reference exception HOT 2
- Better looking dependency injection? HOT 5
- IEffect interface with default implementation (.NET standard 2.1) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eff.