Code Monkey home page Code Monkey logo

Comments (7)

palladin avatar palladin commented on August 25, 2024

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.

solvingj avatar solvingj commented on August 25, 2024

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.

solvingj avatar solvingj commented on August 25, 2024

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.

solvingj avatar solvingj commented on August 25, 2024

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.

palladin avatar palladin commented on August 25, 2024

I'm not familiar with language-ext but I agree that it needs maturity and proof of value.

from eff.

solvingj avatar solvingj commented on August 25, 2024

If you have time to look language-ext over, i would like to know your thoughts.

from eff.

solvingj avatar solvingj commented on August 25, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.