Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Are you using purefun? Please tell me how!! #43

Open
tonivade opened this issue Oct 8, 2019 · 2 comments
Open

Are you using purefun? Please tell me how!! #43

tonivade opened this issue Oct 8, 2019 · 2 comments
Labels
help wanted Extra attention is needed question Further information is requested

Comments

@tonivade
Copy link
Owner

tonivade commented Oct 8, 2019

If you are using purefun, It would be awesome if you tell me how you are using it.

  • Environment:
  • Purpose:
  • Which features are you using:
  • Which features do you miss:

If you want to help me, please write a comment to this issue with this information.

Thanks a lot!

@tonivade tonivade added help wanted Extra attention is needed question Further information is requested labels Oct 8, 2019
@tonivade tonivade pinned this issue Dec 25, 2019
@siy
Copy link

siy commented Dec 1, 2023

Discovered purefun not so long ago and while not using purefun, but found it very interesting, especially as a source of inspiration. The main reason for not adopting it for my projects is the same as for the majority of other functional libraries for Java - focus on functional terminology and "functional for the sake of functional" attitude. While it's a lot of fun and fascinating, at the same time, this attitude makes the library basically not approachable for the vast majority of Java devs with mostly imperative background. By the way, you might find interesting to take a look into my implementation of basic monads like Option, Result and Promise. In particular, my implementations of Option and Result do not use branching and this makes them exceptionally performant (for example, Option has same or better performance than regular null check). Another difference is the use of tuples exclusively as a set of function call parameters, i.e. access to tuple components is not supported (and overall tuples are rather a technical detail rather than a user-facing feature). Instead, all tuple components can be applied to a provided function. Finally, I don't see in your implementation such a convenient tool as Option.all() (and Try.all()) for different number of parameters. I found these static methods extremely useful in real applications.

@tonivade
Copy link
Owner Author

tonivade commented Dec 1, 2023

Thanks a lot for your feedback. I will take a look to your implementation. Kind regards!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants